读取 settings.gradle.kts 中的 Gradle 个属性
Reading Gradle properties in settings.gradle.kts
所以我正在使用 Gradle Kotlin DSL,我想知道是否可以读取 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()
}
}
}
}
谷歌搜索了一段时间后,寻找答案。为了防止这些变量被推入存储库最好使用环境变量而不是 gradle.properties
.
因为在settings.gradle.kts
文件中没有调用属性的函数。只是强制阅读 public gradle.properties
文件是一件很麻烦的事。
设置环境变量后,您可以在 settings.gradle.kts
中调用该变量,如下所示:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { setUrl("https://jitpack.io") }
maven {
setUrl(System.getenv("nexus_url"))
credentials {
username = System.getenv("nexus_username")
password = System.getenv("nexus_password")
}
}
}
}
变量不会被推送到存储库,以这种方式使用它也可以帮助您在 CI/CD 类似 github 的操作中,您可以将变量设置为秘密。
所以我正在使用 Gradle Kotlin DSL,我想知道是否可以读取 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()
}
}
}
}
谷歌搜索了一段时间后,寻找答案。为了防止这些变量被推入存储库最好使用环境变量而不是 gradle.properties
.
因为在settings.gradle.kts
文件中没有调用属性的函数。只是强制阅读 public gradle.properties
文件是一件很麻烦的事。
设置环境变量后,您可以在 settings.gradle.kts
中调用该变量,如下所示:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { setUrl("https://jitpack.io") }
maven {
setUrl(System.getenv("nexus_url"))
credentials {
username = System.getenv("nexus_username")
password = System.getenv("nexus_password")
}
}
}
}
变量不会被推送到存储库,以这种方式使用它也可以帮助您在 CI/CD 类似 github 的操作中,您可以将变量设置为秘密。