gpt4 book ai didi

gradle - 在子项目中继承Gradle插件

转载 作者:行者123 更新时间:2023-12-03 02:46:44 27 4
gpt4 key购买 nike

我想避免冗余,因此我得到了一个包含以下内容的“共享”项目:

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")
}

有什么方法可以使我的常规项目继承插件块或实际插件?

最佳答案

不能这样继承。在我看来,您要尝试执行的操作可以通过从根项目配置子项目来实现。基本上,您可以在根build.gradle(将配置根项目的脚本)中编写:

subprojects {
// configuration
}

您可能可以摆脱共享项目,并将其放在根项目的 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文件中。与您的初始解决方案相比,优点是还可以应用插件,配置扩展以及通常可以执行的所有操作。

附带说明一下,您不需要在 jcenter()块中同时使用 mavenCentralrepositories- jCentermavenCentral的超集,是首选的

关于gradle - 在子项目中继承Gradle插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com