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
如何在build.gradle中设置Eclipse项目的groovy特性?_Eclipse_Groovy_Gradle - Fatal编程技术网

如何在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"])
            }
        }
    }
}