Gradle Custom Plugin:gradleApi()vs Explicit Dependency

nem*_*emo 6 gradle gradle-plugin

我正在开发一个自定义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'
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,为了可重复的构建,我想知道是否使用localGroovy()并且gradleApi()是可取的.

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

你们有什么建议吗?

谢谢!

tom*_*ulo 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'
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 但仍然...“gradleApi()”依赖项在哪里?以及如何指定我想要的具体版本? (2认同)