Eclipse:结合了Groovy和Gradle编辑支持

时间:2018-10-03 12:11:33

标签: eclipse gradle groovy

我知道IntelliJ IDEA中对Groovy / Gradle的支持非常好,但是我试图找出Eclipse目前能走多远。这是我当前的设置:

  • Buildship插件:默认情况下包含,并向Elipse添加了基本的Gradle机制,几乎不支持编辑器(代码完成,文档编制,格式设置等)。
  • EGradle编辑器插件:理解Gradle DSL并提供Gradle API的代码完成/文档,不了解Groovy本身。
  • Pivotal的Groovy开发工具插件:良好的Groovy支持,包括代码完成,Groovy代码的格式等。

现在缺少的是最后两点的结合。每个插件的编辑者都可以理解Gradle或Groovy,但不能同时理解两者。我已经看到Groovy插件中对DSL描述符有一些支持,但是我在互联网上找不到Gradle的DSL描述符。我发现,现在不推荐使用的STS Gradle集成插件(Pivotal的Spring Tool Suite)中对这样的DSL描述符提供了一些支持,该插件后来又删除了(关键字:org.springsource.ide.eclipse.gradle.dsld )。

因此,总体问题大致是:Groovy开发工具插件是否有Gradle DSLD?

1 个答案:

答案 0 :(得分:1)

可以将Gradle的DLSD添加到Eclipse。在撰写本文时,Pdf with font property没有内置内容。

您需要在Groovy编辑器(而不是默认的Gradle编辑器)中打开Gradle构建脚本。

第一个障碍是使Gradle类型可用于DSLD。这可以通过将“ gradleApi()”依赖项添加到您的Gradle依赖项块中来完成。然后,您可以在您的项目中将其作为Groovy DSLD文件进行尝试(目前有点空白):

def isBuildScript = fileExtension('gradle') & (~fileName('settings.gradle'))

contribute(isBuildScript & isThisType()) {
  delegatesTo 'org.gradle.api.Project'

  method name: 'apply', type: void, namedParams: [plugin: String]
}

contribute(isBuildScript & enclosingCallName('configurations') & inClosure() & currentType('org.gradle.api.Project')) {
  setDelegateType('org.gradle.api.artifacts.ConfigurationContainer')
}

contribute(isBuildScript & enclosingCallName('dependencies') & inClosure() & currentType('org.gradle.api.Project')) {
  setDelegateType('org.gradle.api.artifacts.dsl.DependencyHandler')
}

contribute(isBuildScript & enclosingCallName('repositories') & inClosure() & currentType('org.gradle.api.Project')) {
  setDelegateType('org.gradle.api.artifacts.dsl.RepositoryHandler')
}

contribute(fileName('settings.gradle') & isThisType()) {
  setDelegateType('org.gradle.api.initialization.Settings')
}

这里有更多讨论:Groovy Development Tools for Eclipse