如何在两个build.gradle.kts文件之间共享构建配置?

我有两个项目(在一个单一的git仓库),应该有相同的

repository { } 

部分在他们的build.gradle.kts ,但是完全不相关。

我可以把这个共同的部分,包括在每个分别build.gradle.kts ? 怎么样?

更新0.11.0版本中, applyFrom(uri)被删除。

你现在应该使用:

 apply { from("dir/myfile.gradle") } 

老答案

使用Groovy构建脚本,您可以执行如下操作apply from: 'dir/myfile.gradle'其中dir/myfile.gradle是包含共享repositories块的文件。

与Gradle Script Kotlin (至少0.4.1 )类似的方式,你可以使用applyFrom(script: Any)方法。

build.gradle.kts

 applyFrom("dir/myfile.gradle") 

如果您需要从子项目中应用它,您可以执行如下操作:

 applyFrom("${rootProject.rootDir}/dir/myfile.gradle") 

不知道它是否适用于kotlin,但是您可以尝试使用普通gradle:

lol.gradle

 apply plugin: 'java' repositories { mavenCentral() } 

的build.gradle

 apply from: 'lol.gradle' 

以上工作正常。 请注意, lol.gradle已经应用了java插件 – 它增加了repositories在的上下文,因此可以应用。

我们使用捆绑在自定义Gradle分发中的init脚本将我们的企业Nexus资源库应用于每个Gradle项目。 如果你有很多项目,这是值得考虑的。