在项目上运行gradle cleanEclipse Eclipse
后,它失去了Groovy的性质。如何自动设置这种性质,或者只是对Gradle说不管它。
编辑: 根据do doc,我可以在build.gradle中写道:
eclipse {
project {
natures 'some.extra.eclipse.nature', 'some.another.interesting.nature'
}
}
但是,常规性质的名称是什么,或者我怎么能得到它呢?
我转到.project并查看:
<natures>
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>bndtools.core.bndnature</nature>
</natures>
org.eclipse.jdt.groovy.core.groovyNature - 这是自然名称
我正在添加apply plugin: "groovy"
,正如@Peter Niederwieser所建议的那样(感谢+ 1)
运行gradle cleanEclipse Eclipse
后,我有正确的.project文件,项目图标上有“G”,但在.classpath中没有两行:
<classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
<classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
当我手动设置Groovy性质时,存在。
似乎这些行很重要,因为在该变体中,项目甚至在编译级别上也显示错误 - 它没有看到一些Groovy方法。
答案 0 :(得分:1)
再次考虑这一点,Gradle将为那些应用了groovy
(或groovy-base
)插件的项目添加Groovy特性。因此,要么在Gradle端添加该插件,要么在手动添加Groovy特性之后不运行cleanEclipse
,或者切换到Eclipse Gradle tooling而不是生成Eclipse文件。
答案 1 :(得分:1)
看来,对于一个真正的常规自然环境,我不仅需要设置
natures.add 'org.eclipse.jdt.groovy.core.groovyNature'
和
apply plugin: "groovy"
,还要编辑类路径。
eclipse {
classpath {
file {
withXml {
Node node = it.asNode()
node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_SUPPORT"])
node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_DSL_SUPPORT"])
}
}
}
}
有趣的是,如果我们手动打开groovy类路径,只会在.classpath文件中出现路径“GROOVY_SUPPORT”。这对我的项目来说也足够了。但是当手动转动整个Groovy本质时,两条路径都会出现。所以,我也更好地将它们包括在内。
答案 2 :(得分:0)
Gradle-Eclipse插件(这是Eclipse的gradle工具,而不是gradle的Eclipse插件)。应该可以在Eclipse 3.6上安装。 (我说应该可以安装,因为我们不再对3.6进行测试,但不应该有任何原因导致它被破坏)。如果您安装此插件,您应该能够将gradle项目导入Eclipse而无需调用gradle Eclipse
。
您可以从更新站点安装:
http://dist.springsource.com/release/TOOLS/gradle
有关该项目的更多信息,请点击此处: