Gradle 如何避免在每个构建脚本中重复插件声明?
我有一个Gradle构建,它使用Gradle 如何避免在每个构建脚本中重复插件声明?,gradle,Gradle,我有一个Gradle构建,它使用apply from调用各种其他Gradle脚本。主build.gradle和每个子脚本都使用相同的构建脚本插件(特别是gradle货物插件) 我实现这一点的唯一方法是在每个脚本中重复插件声明: build.gradle: buildscript { repositories { jcenter() } dependencies { classpath 'org.gradle.api.plugins:grad
apply from
调用各种其他Gradle脚本。主build.gradle
和每个子脚本都使用相同的构建脚本插件(特别是gradle货物插件)
我实现这一点的唯一方法是在每个脚本中重复插件声明:
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
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.gradle.api.plugins:gradle-cargo-plugin:1.5.1'
}
}
// do something else with the cargo plugin
other.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
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
?在Gradle 2.1中可以很好地工作。在Build.gradle
的buildscript
块中声明的构建脚本在脚本插件中可见
新插件门户()中的插件可以在一行中应用,并且不需要
buildscript
块(Gradle 2.1及更高版本)。我认为这不是答案。当然,OPs复制的构建脚本在两个文件中都可以工作。但是OP提出了一个解决方案,在那里他可以有一个构建依赖项的声明,其他gradle脚本文件可以从中继承。这与插件中buildscript的可见性无关