如何使用命令行输入 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 构建中,命令行属性就是其中之一。
您会看到有一种方法可以传递您可以在 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
我有一个 java 项目,它可以根据我将为其构建的环境使用几个不同的属性文件之一(例如 development.properties 会给我一些适合开发环境),我希望能够通过在命令行 selecting 来控制 gradle 包含在构建中的哪一个。我知道您可以 select 通过在 build.gradle 文件中放入类似的内容来将属性文件包含在构建中:
Properties props = new Properties()
props.load(new FileInputStream("/path/file.properties"))
但我希望能够在构建项目时select即时使用哪个属性文件。
您可以通过多种方式将此信息传递到您的 gradle 构建中,命令行属性就是其中之一。
您会看到有一种方法可以传递您可以在 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