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

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

repository { } 

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

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

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

  • Gradle找不到测试
  • Spek访问内部可见性Kotlin类
  • 正则表达式 - 匹配不是字符串的字
  • 什么是测试(0)在这个片段kotlinlang.org?
  • Kotlin:一个默认的ish setter,返回“this”
  • 为什么与私人二传手var是不变的立场?
  • Kotlin&Spring Boot @ConfigurationProperties
  • 与java8和Kotlin错误
  • 是一个实例val更昂贵,然后伴侣对象VAL?
  • 吸毒者和安置者在Kotlin
  • TornadoFX filechooser
  • Kotlin language will be the best programming language for Android.