gpt4 book ai didi

maven - 使用环境变量或命令行参数覆盖 Maven 过滤器值

转载 作者:行者123 更新时间:2023-12-04 16:00:05 25 4
gpt4 key购买 nike

我们使用 Maven 构建我们的 java 项目,具有不同的配置文件(测试、暂存、生产等)。每个配置文件都有自己的过滤器,声明如下:

<filters>
<filter>src/main/filters/filter-${env}.properties</filter>
</filters>

(将 ${env} 设置为配置文件名称)。每个过滤器都包含特定于目标环境的值(主要是配置参数)。

它多年来一直运行良好。但是,有时,我们想覆盖此 .properties 过滤器文件中的其中一个值,而不修改文件本身

为什么?因为它发生在这个过程的很晚。我们已经在 SCM 上标记了一个版本,在测试/暂存环境中对其进行了仔细测试,就此版本号进行了交流,并在生产安装时发现生产过滤器中的参数值错误。现在创建新标记并再次测试为时已晚,仅针对配置参数。

我想找到一种在 Maven 运行时覆盖该值的方法:使用环境变量,或者通过在 Maven 命令行上传递一些参数。

我想应该可以通过我们自己扩展 maven-resources-plugin 来实现,但是可能有更简单的方法吗?

注意:我们的构建不仅会生成 war ,还会生成包含其配置的完整包。

技术环境:Maven 3.3.9,由Jenkins job启动

最佳答案

当执行 Maven 命令时,您可以通过将其作为系统属性提供来覆盖您的属性。

mvn install "-Dthe.property=the overriden value"

请注意,仅当值包含空格时才需要 "。

关于maven - 使用环境变量或命令行参数覆盖 Maven 过滤器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50761261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com