如何在build.gradle中设置Eclipse项目的groovy特性?
在项目上运行如何在build.gradle中设置Eclipse项目的groovy特性?,eclipse,groovy,gradle,Eclipse,Groovy,Gradle,在项目上运行gradlecleanclipse之后,它就失去了Groovy的特性。我怎样才能自动地设置这个属性,或者简单地对Gradle说别管它 编辑: 根据do,我可以在build.gradle中写: eclipse { project { natures 'some.extra.eclipse.nature', 'some.another.interesting.nature' } } 但是groovy nature的名称是什么,或者我如何获得它呢 我去项目,看: <
gradlecleanclipse
之后,它就失去了Groovy的特性。我怎样才能自动地设置这个属性,或者简单地对Gradle说别管它
编辑:
根据do,我可以在build.gradle中写:
eclipse {
project {
natures 'some.extra.eclipse.nature', 'some.another.interesting.nature'
}
}
但是groovy nature的名称是什么,或者我如何获得它呢
我去项目,看:
<natures>
<nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>bndtools.core.bndnature</nature>
</natures>
当我手动设置Groovy nature时,它们就出现了
看起来,这些行很重要,因为在这个变体中,项目甚至在编译级别上都会显示错误——它没有看到一些Groovy方法。再次思考这个问题,Gradle将为那些应用了
Groovy
(或Groovy base
)插件的项目添加Groovy特性。因此,要么在Gradle端添加该插件,要么在手动添加Groovy nature后不要运行cleanEclipse
,要么切换到而不是生成Eclipse文件。看来,对于真正的Groovy nature设置,我不仅需要设置
natures.add 'org.eclipse.jdt.groovy.core.groovyNature'
及
,但也可以编辑类路径
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特性时,两条路径都会出现。因此,我最好也包括这两个方面。Gradle Eclipse插件(即用于Eclipse的Gradle工具,而不是用于Gradle的Eclipse插件)。应该可以在Eclipse3.6上安装。(我说应该是可安装的,因为我们不再在3.6上测试了,但不应该有任何原因导致它损坏)。如果您安装了这个插件,您应该能够将您的gradle项目导入Eclipse,而无需调用GradleEclipse
您可以从以下更新站点进行安装:
有关该项目的更多信息,请参见:
是否仍在旧版本的Eclipse上运行?如果是这样的话,由于您没有得到答案,我会按照Peter Niederwieser给您的建议,在groovy eclipse邮件列表上询问我,我不是唯一一个参与该项目的人。是的,它是3.6,我还不能改变它。@tim_yates,问题是Gradle,而不是Eclipse。Gradle是最后一个版本。我如何才能将groovy插件添加到Gradle端的项目中呢?我无法更改为Eclipse3.7。所以,我不能使用EclipseGradle工具。(我很久以前就想这么做了)。我不能清理Eclipse或至少是“类路径”,因为它正是我需要刷新的类路径。谢谢,问题是@Peter Niederwieser已经给出了对该工具的引用,并且它写在那里,它的最低Eclipse版本是3.7:-(
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"])
}
}
}
}