我想将公司特定的配置从我的
~/.gradle/gradle.properties
移到初始化脚本 ~/.gradle/company.init.gradle
中。不幸的是,我无法弄清楚如何在 init 脚本中定义全局 Gradle 属性,就像在 gradle.properties
文件中那样。
我的
~/.gradle/gradle.properties
目前有:
org.gradle.daemon=true
org.gradle.caching=true
[email protected]
com.company.artifactory.apiKey=<api_key>
com.company.artifactory.contextUrl=https://company.jfrog.io/company
我想将这些 Artifactory 值移至公司特定的初始化脚本,
~/.gradle/company.init.gradle
(主要是因为我将 gradle.properties
提交到我的 home 目录存储库):
gradle.allprojects {
[email protected]
com.company.artifactory.apiKey=<api_key>
com.company.artifactory.contextUrl=https://company.jfrog.io/company
}
但是这些方法都无法从我的构建脚本访问该属性:
task('foobar') {
// Outputs "null"
println(project.properties['com.company.artifactory.username'])
}
根据 gradle.allprojects,您的配置操作将针对所有 当前可用且已评估的项目发生,并在新项目评估后进行。根据我对你想要实现的目标的理解,我相信 gradle.beforeProject 将是添加属性的地方。
// ~/.gradle/company.init.gradle.kts
gradle.beforeSettings {
System.setProperty("org.gradle.daemon", "true")
System.setProperty("org.gradle.caching", "true")
System.setProperty("com.company.artifactory.username", "[email protected]")
System.setProperty("com.company.artifactory.apiKey", "<api_key>")
System.setProperty("com.company.artifactory.contextUrl", "https://company.jfrog.io/company")
}