我有一个java项目,它可以根据我将为其构建的环境使用一些不同的属性文件(例如,development.properties将为我提供对开发环境有益的属性),我想要通过在命令行中选择它,能够控制构建中包含哪个gradle。我知道您可以通过在build.gradle文件中放置类似的内容来选择要包含在构建中的属性文件:
Properties props = new Properties()
props.load(new FileInputStream("/path/file.properties"))
但我希望能够在构建项目时动态选择要使用的属性文件。
答案 0 :(得分:2)
有许多方法可以将此信息传递到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