Gradle Custom Plugin:gradleApi()vs Explicit Dependency

时间:2015-11-24 23:50:12

标签: 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'
  }
}

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

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

你们有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我建议应用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-injection&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'
    }
}

答案 1 :(得分:0)

我相信

implementation "com.android.tools.build:gradle-api:3.3.2"

相同

implementation gradleApi()