12

我正在开发一个自定义 gradle 插件,我的插件项目的依赖项如下所示:

dependencies {
  compile gradleApi()
  compile localGroovy()
  compile('com.xxx.oozie:oozie-dsl-parser:1.0.127') {
    exclude module: 'groovy-all'
  }

  testCompile('org.spockframework:spock-core:1.0-groovy-2.3') {
    exclude module: 'groovy-all'
  }
}

但是,为了可重现的构建,我想知道是否建议使用localGroovy()and gradleApi()

经过大量的谷歌搜索,虽然我可以localGroovy()用特定版本的 groovy 替换,但我似乎无法找到关于替换的明确答案gradleApi()

你们有什么建议吗?

谢谢!

4

2 回答 2

3

我建议应用java-gradle-plugin. 它会gradleApi()自动添加依赖项,还包括一些其他样板配置:https ://docs.gradle.org/current/userguide/javaGradle_plugin.html#gsc.tab=0

gradleApi()作为依赖项添加的版本取决于您在构建项目时使用的 Gradle 版本。例如,如果您的包装器具有 Gradle 2.14.1,则使用的 Gradle API 将是该版本。

您也不必担心,localGroovy()因为它已经包含在gradleTestKit()插件添加的依赖项中:https ://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath -注入&gsc.tab=0

这是一个例子:

apply plugin: 'groovy'
apply plugin: 'java-gradle-plugin'

dependencies {
    testCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
        exclude module: 'groovy-all'
    }
}
于 2017-03-10T13:12:23.177 回答
3

查看https://github.com/gradle/gradle/issues/1835似乎没有明确的依赖关系可以用于该目的。

虽然不等同于gradleApi(),但如果您正在为 Android 开发,您可能会对com.android.tools.build:gradle-api:3.3.2依赖项感兴趣。

于 2019-03-25T15:30:12.503 回答