如何在Gradle buildSrc和项目的其余部分之间共享变量?

13

我有一个Gradle项目,其中包含一个buildSrc目录。主项目和buildSrc项目都需要知道Artifactory服务器的URL。我想将URL保存在一个地方,并将其保存在源代码控制中。我尝试将URL添加到gradle.properties文件中,但似乎只被主项目使用,而不是buildSrc项目。

如何在两个项目之间共享属性?

3个回答

5
为了读取项目属性,您可以在buildSrc/build.gradle的开头放置以下代码片段:
def props = new Properties() 
rootDir.toPath().resolveSibling(GRADLE_PROPERTIES).toFile().withInputStream {
    props.load(it)
}
props.each { key, val -> project.ext."$key" = val }

4
在Gradle中,buildSrc是一个不同的构建,而不仅仅是主项目中的一个项目。因此,在主构建和buildSrc之间共享属性等的最简单方法是将其放在单独的gradle/sharedProperties.gradle文件中。然后您的主项目build.gradle可以使用它。
apply from: 'gradle/sharedProperties.gradle'

buildSrc/build.gradle 可以使用

apply from: '../gradle/sharedProperties.gradle'

0

buildSrc构建和主构建之间没有内置的共享信息的方法。但是,您可以从两个构建中读取自己的属性文件(使用java.lang.Properties)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接