Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java gradleeclipse任务没有添加正确的Gradle性质_Java_Eclipse_Gradle_Build.gradle_Gradle Eclipse - Fatal编程技术网

Java gradleeclipse任务没有添加正确的Gradle性质

Java gradleeclipse任务没有添加正确的Gradle性质,java,eclipse,gradle,build.gradle,gradle-eclipse,Java,Eclipse,Gradle,Build.gradle,Gradle Eclipse,我有以下项目结构: 根gradle build.gradle project-group1无生成文件 project1 build.gradle project2.build.gradle ... project-group2无生成文件 ... 所以我不得不经常重新创建Eclipse项目。我运行命令: gradle cleanEclipse eclipse 在多次运行之后,eclipse任务将按预期停止工作。也就是说,它不再为项目添加渐变特性,也不承认 sourceCompatibility

我有以下项目结构:

根gradle build.gradle project-group1无生成文件 project1 build.gradle project2.build.gradle ... project-group2无生成文件 ... 所以我不得不经常重新创建Eclipse项目。我运行命令:

gradle cleanEclipse eclipse
在多次运行之后,eclipse任务将按预期停止工作。也就是说,它不再为项目添加渐变特性,也不承认

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 ...
}
这对根项目有帮助,但对任何其他项目都没有影响。 我在子项目中添加了同样的内容,但结果同样不令人满意。 我不得不说,即使在将nature添加到根项目中,并且Gradle插件选项再次可用于根项目之后,我仍然没有看到G图标

看来我的gradle设置有两个问题

格雷德尔本性的消失。运行几次之后,Eclipse停止识别gradle项目。如果这一切正常的话,我甚至不会面对第二个问题

我的gradle构建文件或项目布局有一些问题,因为我的设置似乎对子项目无效

缺少具有恢复渐变特性的项目的G图标

任何帮助都将不胜感激

安装

然后使用Eclipse菜单:文件->导入。。。导入Gradle项目。 它将增加渐变的性质。和2个额外的Eclipse视图,一个用于快速运行Gradle任务。一个用于这些已执行任务的渐变输出

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

新格拉德尔项目

使用Eclispe菜单:文件->新建->其他。。。 选择向导:渐变->渐变项目 输入项目名称 按按钮完成
这应该设置一个最小的Gradle项目。

我认为您必须将Gradle设置为您的系统环境。 台阶-

从Gradle网站安装Gradle。 转到gradle eNode中的eclipse首选项设置主路径,如C:\gradle-2.3 或者您安装的任何目录。 还要确保将path添加到系统环境变量中。
如果存在评估阶段争用条件,可以使用afterEvaluate限定符消除它。我会尝试:

allprojects {
    afterEvaluate {
        eclipse.project {
            natures 'org.springsource.ide.eclipse.gradle.core.nature'
        }
    }
}
在“设置”菜单中,单击“渐变>>

 include 'Device', 'Secugen', 'Morpho', 'NIDVSADesktop'
这里是我的根项目。 在根项目gradle中

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

}
这里,Secugen和Morpho是我的两个子项目

使用了我不得不使用的字符串'org.eclipse.buildship.core.gradleprojectnature'

例如:

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

我只从Eclipse刷新,但使用GradleEclipse插件进行自定义。我遇到了一些问题,afterEvaluate解决了这些问题,因此您可以尝试一下,看看是否需要将更改延迟到配置阶段结束。我支持@BenManes的观点。您的allprojects块可能在组装子项目列表之前运行,从而导致您看到的行为。您是否尝试过使用afterEvaluate?那么您不应该使用gradle cleanEclipse命令。生成的文件与gradleforeclipse插件相同/相似。还要删除Gradle构建文件中的eclipse.project{…}部分。因为Gradle for Eclipse插件没有使用它。我知道cleanEclipse是最后的选择。但在某些情况下,没有其他命令可以帮助更改库版本。实际上使用了eclipse.project节,但它不应用于子项目。您可以在每个gradle文件中插入它,然后按预期添加性质。当您坚持使用gradle cleanEclipse时,eclipse从sink中退出,并创建了新生成的文件,如.project和.classapth,这并不奇怪。如果您需要这种工作方式,我建议您关闭Eclipse,或者至少在Eclipse中关闭所有相关项目。然后在命令promt中运行,gradlecleanclipse。我同意@Verhagen的观点,Gradle的Eclipse任务并不是最好的,它实际上是与Eclipse本身作斗争的。甚至在Buildship之前,使用STS的GradleIDE插件,他们在设置Eclipse项目方面比Gradle本身做得更好。有道理,不是吗:Gradle是一个构建和依赖关系管理工具,最好将IDE的内容留给IDE工具。不幸的是,对构建和依赖关系管理工具的不健康痴迷迫使人们将其用于所有事情,即使它不适合。这将迫使Gradle版本在各个项目中保持一致,限制IDE使用Gradle包装器定义的默认值的能力,不是吗?不管怎样,它已经配置好了。看起来问题在于插件有问题。虽然添加了特性,但Eclipse仍然无法将这些项目识别为Gradl
e项目。我最终不得不禁用并重新启用Gradle特性,然后为它们启用依赖关系管理来进行构建。嗯,我想eclipse只是在项目添加过程中进行了一些识别,目前还没有一种直接的方法来强制eclipse从构建工具中重新进行。Morpho-Gradle构建如何找到它的父级?据我所知,它只在主同级目录或父目录中搜索。当您只运行Morpho构建而不运行root构建时会发生什么?