我使用的是 v3.4 级。我已将以下属性移至名为 local.properties 的文件(与 build.gradle 位于同一目录):
本地属性
nexusUsername=someuser
nexusPassword=somepassword
build.gradle
File secretPropsFile = file('./local.properties')
if (secretPropsFile.exists()) {
Properties p = new Properties()
p.load(new FileInputStream(secretPropsFile))
p.each { name, value ->
project.set name, value
}
} else {
throw new IllegalStateException("secret.properties could not be located for build process")
}
我遇到以下异常:
Could not find method set() for arguments [nexusUsername, someuser] on root project 'some-java-project of type org.gradle.api.Project.
最佳答案
您收到的错误是正确的。要设置属性,您需要使用ext
。请查看docs .
所以下面的代码可以完成这项工作:
File secretPropsFile = file('./local.properties')
if (secretPropsFile.exists()) {
Properties p = new Properties()
p.load(new FileInputStream(secretPropsFile))
p.each { name, value ->
ext[name] = value
}
} else {
throw new IllegalStateException("secret.properties could not be located for build process")
}
println project.nexusPassword
println project.nexusUsername //property is set in project's scope via ext
关于gradle - 设置从 build.gradle 内的 local.properties 读取的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876813/