我使用的是GradleKotlinDSL,我想知道是否可以读取settings.gradle.kts
中的gradle属性?
我有这样的gradle.properties
文件:
nexus_username=something
nexus_password=somepassword
我已经这样做了,但仍然无法读取属性。
dependencyResolutionManagement {
repositories {
mavenCentral()
google()
maven { setUrl("https://developer.huawei.com/repo/") }
maven { setUrl("https://jitpack.io") }
maven {
setUrl("https://some.repository/")
credentials {
val properties =
File(System.getProperty("user.home")+"\\.gradle", "gradle.properties").inputStream().use {
java.util.Properties().apply { load(it) }
}
username = properties["nexus_username"].toString()
password = properties["nexus_password"].toString()
}
}
}
}
3条答案
按热度按时间fquxozlt1#
您可以在
build.gradle.kts
和settings.gradle.kts
中使用委托属性访问gradle.properties
中设置的值(仅限KotlinDSL,因为委托属性是Kotlin的一项功能!)。gradle.properties
build.gradle.kts
settings.gradle.kts
ars1skjm2#
您可以使用提供程序访问gradle参数
要在Groovy上工作,您需要将变量声明替换为:
基于answer
piah890a3#
在谷歌搜索了一段时间后,寻找答案。为了防止这些变量被推到仓库中,最好使用环境变量而不是
gradle.properties
。因为
settings.gradle.kts
文件中没有调用属性的函数,而强制阅读公共的gradle.properties
文件是一件很麻烦的事情。设置环境变量后,可以在
settings.gradle.kts
中调用该变量,如下所示:变量不会被推送到仓库,这样使用它也可以帮助你在CI/CD中像github一样操作,在那里你可以把变量设置为secret。