12

我有以下项目结构:

  • 根分级 ( build.gradle)
    • project-group1(无构建文件)
      • 项目 1 ( build.gradle)
      • 项目2 ( build.gradle)
      • ...
    • project-group2(无构建文件)
      • ...

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

gradle cleanEclipse eclipse

多次运行后,“eclipse”任务按预期停止工作。即,它不再为项目添加 gradle 性质,也不识别

sourceCompatibility = 1.6

不再试图用 1.8 版本的 Java 构建一切。

我将以下内容添加到根目录build.gradle

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

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

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

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

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

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

4

6 回答 6

7

使用Buildship: Eclipse Plug-ins for Gradle我不得不使用 natures 字符串org.eclipse.buildship.core.gradleprojectnature

例如:

allprojects {
    eclipse.project {
        natures 'org.eclipse.buildship.core.gradleprojectnature'
    }
}
于 2016-02-26T14:58:23.287 回答
4

为 Eclipse安装Gradle 插件

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

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

新的 Gradle 项目

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

这应该建立一个最小的 Gradle 项目。

于 2015-10-19T15:30:06.653 回答
3

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

allprojects {
    afterEvaluate {
        eclipse.project {
            natures 'org.springsource.ide.eclipse.gradle.core.nature'
        }
    }
}
于 2015-12-08T21:54:36.540 回答
1

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

  1. 从 gradle 网站安装 Gradle。
  2. C:\gradle-2.3 在 gradle EnIDE 之类的或您已安装的任何目录中转到 eclipse 首选项设置主路径。
  3. 还要确保将路径添加到您的系统环境变量。
于 2015-12-07T09:40:00.750 回答
0

删除 Gradle Nature 关闭 eclips 然后转到项目文件夹结构并运行命令“./gradlew clean build -x test cleanEclipse eclipse”下一个打开 eclipse 并刷新项目

于 2021-11-01T06:23:02.223 回答
0

根目录的屏幕截图

settings.gradle>>

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

NIDVSADesktop是我的根项目。在根项目 gradle

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

}

这里是我SecugenMorpho2 个子项目

于 2015-12-09T12:44:39.553 回答