在项目上运行gradle cleanEclipse Eclipse
之后,它就失去了Groovy性。我怎样才能自动设置这个属性,或者简单地告诉Gradle不要去管它。
编辑:根据do doc,我可以在build.gradle中写道:
eclipse {
project {
natures 'some.extra.eclipse.nature', 'some.another.interesting.nature'
}
}
但是groovy特性的名称是什么,或者我如何才能获得它呢?
我去.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建议的那样(thanks+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方法。
发布于 2013-04-12 11:15:25
看起来,对于一个真正的groovy自然设置,我不仅需要设置
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特性时,这两条路径都会出现。所以,我最好把它们都包括进来。
发布于 2013-04-12 10:09:28
再次思考这一点,Gradle将为那些应用了groovy
(或groovy-base
)插件的项目添加Groovy性质。因此,要么在Gradle端添加插件,要么在手动添加Groovy性质之后不运行cleanEclipse
,或者切换到Eclipse Gradle tooling而不是生成Eclipse文件。
发布于 2013-04-12 15:57:24
Gradle-Eclipse插件(即用于Eclipse的gradle工具,而不是用于gradle的Eclipse插件)。应该可以安装在Eclipse3.6上。(我说应该是可安装的,因为我们不再在3.6上测试,但它不应该有任何理由被破坏)。如果您安装了这个插件,您应该能够在不调用gradle Eclipse
的情况下将gradle项目导入到Eclipse中。
您可以从此处的更新站点安装:
http://dist.springsource.com/release/TOOLS/gradle
关于这个项目的更多信息在这里:
https://stackoverflow.com/questions/15968141
复制相似问题