如何避免每个构建脚本中的重复插件声明?

时间:2014-10-03 00:34:50

标签: gradle

我有一个Gradle构建,使用apply from调用各种其他gradle脚本。主build.gradle和每个子脚本都使用相同的构建脚本插件(具体为gradle-cargo-plugin)。

我设法让这个工作的唯一方法是在每个脚本中重复插件的声明:

build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.gradle.api.plugins:gradle-cargo-plugin:1.5.1'
    }
}

apply from: 'other.gradle'

// do something with the cargo plugin

other.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.gradle.api.plugins:gradle-cargo-plugin:1.5.1'
    }
}

// do something else with the cargo plugin

如您所见,每个脚本中都会重复buildscript部分。更改该依赖项变得乏味且容易出错,但子脚本不会从主build.gradle继承依赖项。

有没有办法通过允许被调用的脚本继承buildscript依赖项,或者以不同的方式委托子脚本而不是apply from来清理它?

1 个答案:

答案 0 :(得分:0)

使用Gradle 2.1可以正常使用。在脚本插件中可以看到在build.gradle的{​​{1}}块中声明的构建脚本。

新插件门户网站(http://plugins.gradle.org/)中的插件可以在一行中应用,并且不需要buildscript块(使用Gradle 2.1及更高版本)。