我有一个Gradle项目,其中包含一个buildSrc目录。主项目和buildSrc项目都需要知道Artifactory服务器的URL。我想将URL保存在一个地方,并将其保存在源代码控制中。我尝试将URL添加到gradle.properties文件中,但似乎只被主项目使用,而不是buildSrc项目。
如何在两个项目之间共享属性?
我有一个Gradle项目,其中包含一个buildSrc目录。主项目和buildSrc项目都需要知道Artifactory服务器的URL。我想将URL保存在一个地方,并将其保存在源代码控制中。我尝试将URL添加到gradle.properties文件中,但似乎只被主项目使用,而不是buildSrc项目。
如何在两个项目之间共享属性?
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 }
buildSrc
是一个不同的构建,而不仅仅是主项目中的一个项目。因此,在主构建和buildSrc之间共享属性等的最简单方法是将其放在单独的gradle/sharedProperties.gradle
文件中。然后您的主项目build.gradle
可以使用它。apply from: 'gradle/sharedProperties.gradle'
和 buildSrc/build.gradle
可以使用
apply from: '../gradle/sharedProperties.gradle'
在buildSrc
构建和主构建之间没有内置的共享信息的方法。但是,您可以从两个构建中读取自己的属性文件(使用java.lang.Properties
)。