Gradle eclipse任务没有添加适当的gradle性质

时间:2015-09-01 21:06:56

标签: java eclipse gradle build.gradle gradle-eclipse

我有以下项目结构:

  • root-gradle(build.gradle)
    • project-group1(无构建文件)
      • project1(build.gradle)
      • project2(build.gradle)
      • ...
    • project-group2(没有构建文件)
      • ...

碰巧我必须经常重新创建Eclipse项目。我运行命令:

gradle cleanEclipse eclipse

经过多次运行后,“eclipse”任务停止按预期工作。也就是说,它不再为项目添加gradle性质而且无法识别

sourceCompatibility = 1.6

再试图使用1.8版本的Java构建所有内容。

我将以下内容添加到root build.gradle:

allprojects {
    sourceCompatibility = 1.6
    eclipse.project {
        natures 'org.springsource.ide.eclipse.gradle.core.nature'
    }
    // more stuff here ...
}

这有助于根项目,但对任何其他项目都没有影响。 我向子项目添加了同样的东西,但结果不尽如人意。 我不得不说,即使在将自然界添加到根项目并且Gradle插件选项再次可用于root后,我仍然看不到“G”图标。

所以看起来我有2个gradle设置问题。

  1. gradle性质的消失。运行几次后,Eclipse停止识别gradle项目。如果能正常工作,我甚至不会面临第二个问题。

  2. 我的gradle构建文件或项目布局存在一些问题,因为我的设置似乎对子项目没有生效。

  3. 缺少已恢复Gradle性质的项目的“G”图标。

  4. 非常感谢任何帮助!

5 个答案:

答案 0 :(得分:5)

使用Buildship: Eclipse Plug-ins for Gradle我必须使用自然字符串'org.eclipse.buildship.core.gradleprojectnature'

例如:

allprojects {
    eclipse.project {
        natures 'org.eclipse.buildship.core.gradleprojectnature'
    }
}

答案 1 :(得分:4)

安装Gradle plug-in for Eclipse

然后使用Eclipse菜单: File - >导入... 以导入Gradle项目。 它将添加Gradle Nature。还有2个额外的Eclipse视图,一个用于快速运行Gradle任务。一个用于Gradle输出执行的任务。

提示:在导入现有Gradle项目之前,请创建一个 New Gradle 项目,以查看Gradle插件是否按预期工作。

新Gradle项目

  • 使用Eclispe菜单:文件 - >新 - >其他......
  • 选择向导: Gradle - > Gradle项目
  • 输入项目名称
  • 按下按钮完成

这应该设置一个最小的Gradle项目。

答案 2 :(得分:3)

如果存在评估阶段竞争条件,则可以使用afterEvaluate限定符来消除它。我会尝试:

allprojects {
    afterEvaluate {
        eclipse.project {
            natures 'org.springsource.ide.eclipse.gradle.core.nature'
        }
    }
}

答案 3 :(得分:1)

我认为您必须将gradle设置为您的系统环境。 步骤 -

  • 从gradle网站安装Gradle。
  • 转到eclipse首选项设置Gradle EnIDE中的主页路径,如" C:\ gradle-2.3"
    或者您安装的任何目录。
  • 还要确保添加系统环境变量的路径。

答案 4 :(得分:0)

enter image description here

在设置gradle>>

 include 'Device', 'Secugen', 'Morpho', 'NIDVSADesktop'

这里NIDVSADesktop是我的根项目。 在根项目gradle中

dependencies {
  compile project(':Secugen') 
  compile project(':Morpho')

}

这里Secugen和Morpho是我的2个子项目