我有两个项目(在一个git存储库中)应该具有相同的
repository {
}
他们build.gradle.kts
中的部分,但完全不相关。
我可以将这个共同部分考虑在内并将其包含在每个build.gradle.kts
中吗?怎么样?
答案 0 :(得分:4)
更新在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")
答案 1 :(得分:2)
不知道它是否适用于kotlin,但你可以尝试使用普通的gradle:
<强> lol.gradle 强>
apply plugin: 'java'
repositories {
mavenCentral()
}
<强>的build.gradle 强>
apply from: 'lol.gradle'
以上工作正常。请注意 lol.gradle 已应用java
插件 - 它会添加repositories
存在的上下文,因此可以应用。
答案 2 :(得分:1)
我们使用自定义gradle分发中捆绑的init script将我们的企业Nexus存储库应用于每个gradle项目。如果你有很多项目,那值得考虑。
答案 3 :(得分:0)
在每个项目中复制通用配置时,我遇到了类似的问题。通过具有初始化脚本中定义的常用设置的自定义gradle分发解决了该问题。
创建了gradle插件来准备这种自定义发行版-custom-gradle-dist。它非常适合我的项目,例如库项目的 build.gradle 看起来像这样(这是一个完整的文件,包含所有存储库,插件,常见的依赖项< / em>等在自定义init脚本中定义):
dependencies {
compile 'org.springframework.kafka:spring-kafka'
}