如何在两个build.gradle.kts文件之间共享构建配置?
我有两个项目(在一个git存储库中)应该具有相同的特性如何在两个build.gradle.kts文件之间共享构建配置?,gradle,kotlin,gradle-kotlin-dsl,Gradle,Kotlin,Gradle Kotlin Dsl,我有两个项目(在一个git存储库中)应该具有相同的特性 repository { } 在它们的build.gradle.kts中,但在其他方面是完全无关的 我是否可以将此公共部分分解出来,并将其包含在每个相应的build.gradle.kts中?如何使用?不知道它是否适用于kotlin,但您可以尝试使用plain gradle的等效产品: lol.gradle apply plugin: 'java' repositories { mavenCentral() } apply fr
repository {
}
在它们的build.gradle.kts
中,但在其他方面是完全无关的
我是否可以将此公共部分分解出来,并将其包含在每个相应的
build.gradle.kts
中?如何使用?不知道它是否适用于kotlin,但您可以尝试使用plain gradle的等效产品:
lol.gradle
apply plugin: 'java'
repositories {
mavenCentral()
}
apply from: 'lol.gradle'
build.gradle
apply plugin: 'java'
repositories {
mavenCentral()
}
apply from: 'lol.gradle'
上面的工作很好。请注意,lol.gradle已经应用了
java
插件-它添加了存储库
所在的上下文,因此可以应用。我们在自定义gradle发行版中使用一个捆绑包,将我们的corporate Nexus存储库应用于每个gradle项目。如果你有很多项目,这是值得考虑的。更新版本中,applyFrom(uri)
被删除
您现在应该使用:
apply {
from("dir/myfile.gradle")
}
旧答案 使用Groovy构建脚本,您可以执行以下操作:
apply from:'dir/myfile.gradle'
其中dir/myfile.gradle
是一个包含共享存储库的文件
与(至少使用0.4.1
)类似,您可以使用applyFrom(script:Any)
方法
build.gradle.kts
applyFrom("dir/myfile.gradle")
如果需要从子项目中应用它,可以执行以下操作:
applyFrom("${rootProject.rootDir}/dir/myfile.gradle")
在每个项目中复制公共配置时,我遇到了类似的问题。通过使用init脚本中定义的公共设置的自定义gradle分发解决了此问题
创建了一个gradle插件,用于准备此类自定义发行版-。它非常适合我的项目,例如,库项目的build.gradle如下所示(这是一个完整的文件,所有存储库、插件、公共依赖项等都在自定义初始化脚本中定义):
依赖项{
编译“org.springframework.kafka:springkafka”
}