如何在两个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项目。 如果你有很多项目,这是值得考虑的。