gpt4 book ai didi

maven - 如果maven中没有为资源过滤设置环境变量,如何使用默认值?

转载 作者:行者123 更新时间:2023-12-03 07:27:35 24 4
gpt4 key购买 nike

我正在使用资源过滤来替换属性文件中的某些 ${values}。

例如该文件包含属性=${VALUE}

我希望将 ${VALUE} 替换为环境变量 $VALUE,如果在构建运行时设置了 $VALUE,则该环境变量可以正常工作。惊人的。

但是,这些环境变量仅在我们的官方构建环境(由 Jenkins)中设置,而不是在开发人员构建中设置,因此 ${values} 在过滤后保留在属性文件中,这可能会破坏内容。我不想在开发人员环境中要求环境变量,因为这总是会导致脆弱的开发构建和发牢骚的开发人员。

如果设置了环境变量值,如何使用它;如果未设置环境变量,如何使用另一个默认属性值?

根据我的测试,默认情况下它会以相反的方式工作,因为 pom 中设置的属性将覆盖环境变量以实现资源过滤。

谢谢

最佳答案

我使用配置文件来确定为

<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>!myproperty</name>
</property>
</activation>
...
<properties>
<myproperty>some value</myproperty>
</properties>
</profile>
...
</profiles>

请注意

  1. activeByDefault 设置为 true 是为了默认启用它。
  2. !myproperty 表示此属性丢失或不存在。
  3. 如果 myproperty 不存在,则只需使用 properties 中定义的 myproperty 即可。

您可以在http://maven.apache.org/guides/introduction/introduction-to-profiles.html查看更多信息

希望这可以帮助实现您的要求。

问候,

查理奇

关于maven - 如果maven中没有为资源过滤设置环境变量,如何使用默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6529020/

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