如何使用命令行输入选择要在gradle构建中使用的属性文件?

时间:2015-08-03 20:57:38

标签: java gradle properties-file

我有一个java项目,它可以根据我将为其构建的环境使用一些不同的属性文件(例如,development.properties将为我提供对开发环境有益的属性),我想要通过在命令行中选择它,能够控制构建中包含哪个gradle。我知道您可以通过在build.gradle文件中放置类似的内容来选择要包含在构建中的属性文件:

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

但我希望能够在构建项目时动态选择要使用的属性文件。

1 个答案:

答案 0 :(得分:2)

有许多方法可以将此信息传递到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