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

Posted

技术标签:

【中文标题】如何使用命令行输入来选择要在 gradle 构建中使用的属性文件?【英文标题】:How do I use command line input to select a properties file to use in a gradle build? 【发布时间】:2015-10-26 02:40:41 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

您可以通过多种方式将此信息传递到您的 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

【讨论】:

以上是关于如何使用命令行输入来选择要在 gradle 构建中使用的属性文件?的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Android 依赖管理 ⑤ ( Gradle 依赖优化 | 命令行查看依赖模块 | 依赖冲突问题 | 依赖传递冲突 | 分库冲突 | 依赖分组不同导致冲突 )

如何在命令行中使用带有 gradle 的袜子来解决依赖关系?

如何在针对特定 Gradle 构建风格的同时从命令行运行单个单元测试方法

如何在使用命令行 Gradle (6.4) 构建 Spring Boot 应用程序时传递 spring.config.location="some path"

有没有办法从 gradle 任务中读取命令行参数?

gradle学习