【问题标题】:How can I set in build.gradle the groovy nature of an Eclipse project?如何在 build.gradle 中设置 Eclipse 项目的常规特性?
【发布时间】:2013-04-12 09:49:10
【问题描述】:

在项目上运行 gradle cleanEclipse Eclipse 后,它失去了 Groovy 特性。我怎样才能自动设置这种性质,或者只是对 Gradle 说不要管它。

编辑: 根据dodoc,我可以在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 建议的那样(感谢+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 方法。

【问题讨论】:

  • 仍在旧版本的 Eclipse 上运行?如果是这样,由于你没有得到这个 when you asked it before 的答案,我会按照 Peter Niederwieser 给你的建议在 groovy-eclipse 邮件列表中提问
  • 我不是唯一一个从事这个项目的人。是的,它是 3.6,我还不能更改它。
  • @tim_yates 问题出在 Gradle 上,而不是 Eclipse。 Gradle 是最后一个版本。

标签: eclipse groovy gradle


【解决方案1】:

再考虑一下,Gradle 将为那些应用了groovy(或groovy-base)插件的项目添加Groovy 特性。因此,要么在 Gradle 端添加该插件,要么在手动添加 Groovy 特性后不运行 cleanEclipse,或者切换到 Eclipse Gradle tooling 而不是生成 Eclipse 文件。

【讨论】:

  • 我怎样才能将那个 groovy 插件添加到 Gradle 端的项目中?
  • 我根本无法更改为 Eclipse 3.7。所以,我不能使用 Eclipse Gradle Tooling。 (我很久以前就想这样做)。而且我不能不清理 Eclipse 或者至少是“类路径”,因为它只是我需要刷新的类路径。
【解决方案2】:

看来,对于一个真正时髦的自然环境,我不仅需要设置

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 特性时,两条路径都会出现。所以,我最好也包括他们两个。

【讨论】:

    【解决方案3】:

    Gradle-Eclipse 插件(即 Eclipse 的 gradle 工具,而不是 gradle 的 Eclipse 插件)。应该可以安装在 Eclipse 3.6 上。 (我说 应该 是可安装的,因为我们不再在 3.6 上进行测试,但不应该有任何原因导致它被破坏)。如果你安装了这个插件,你应该可以在不调用gradle Eclipse的情况下将你的gradle项目导入Eclipse。

    您可以从此处的更新站点安装:

    http://dist.springsource.com/release/TOOLS/gradle

    更多关于该项目的信息在这里:

    https://github.com/SpringSource/eclipse-integration-gradle

    【讨论】:

    • 谢谢,问题是@Peter Niederwieser 已经给出了对该工具的引用,并且它写在那里,它的最小 Eclipse 版本是 3.7 :-(
    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 2013-05-23
    • 2012-02-24
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    相关资源
    最近更新 更多