如何使用命令行输入 select 属性文件以在 gradle 构建中使用?

How do I use command line input to select a properties file to use in a gradle build?

我有一个 java 项目,它可以根据我将为其构建的环境使用几个不同的属性文件之一(例如 development.properties 会给我一些适合开发环境),我希望能够通过在命令行 selecting 来控制 gradle 包含在构建中的哪一个。我知道您可以 select 通过在 build.gradle 文件中放入类似的内容来将属性文件包含在构建中:

Properties props = new Properties()
props.load(new FileInputStream("/path/file.properties"))

但我希望能够在构建项目时select即时使用哪个属性文件。

您可以通过多种方式将此信息传递到您的 gradle 构建中,命令行属性就是其中之一。

如果你签出 https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_properties_and_system_properties

您会看到有一种方法可以传递您可以在 gradle 脚本中访问的命令行参数。

例如:

./gradlew -PenvFile="/path/file.properties" clean jar

您稍后可以通过您选择的密钥(例如

引用它来从 gradle 访问它
task printProps << {
println envFile
}

输出

./gradlew -PenvFile="/path/test.properties" printProps
:printProps
/path/test.properties

BUILD SUCCESSFUL

Total time: 0.747 secs