我想避免冗余,因此我得到了一个"共享"项目,其中包含这样的看起来像这样:
plugins {
id "org.flywaydb.flyway" version "4.2.0"
}
repositories {
mavenCentral()
jcenter()
}
apply plugin: "java"
dependencies {
compile "commons-io:commons-io:2.4"
// ...
}
然后,我还有常规项目,可以从我的共享项目中继承编译依赖项:
apply plugin: "java"
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile project(":shared")
testCompile project(":shared")
}
有什么办法可以使我的常规项目继承插件块或实际插件?
不是 sashit 这样。在我看来,您要尝试做的事情可以通过配置root项目的子标记来实现。基本上在您的root build.gradle
中(将要配置您的root项目的脚本(您可以写:
subprojects {
// configuration
}
您可能可以摆脱您的共享项目,并在Root Project的build.gradle
:
plugins {
id "org.flywaydb.flyway" version "4.2.0" apply false
}
subprojects {
repositories {
mavenCentral()
jcenter()
}
apply plugin: "java"
apply plugin: "org.flywaydb.flyway"
dependencies {
compile "commons-io:commons-io:2.4"
// ...
}
}
这样,将使用相同的封闭方式配置所有子标题 - 这等效于将subprojects
块中的所有内容复制到您的单个子标题的build.gradle
文件。优于初始解决方案的优势在于能够应用插件,配置扩展,您通常可以做的一切。
作为旁注,您不需要repositories
中的jcenter()
和mavenCentral
- jCenter
是mavenCentral
的超集,并且是首选的一个