我正在使用资源过滤来替换属性文件中的一些$ {values}.
例如,该文件包含PROPERTY = $ {VALUE}
我希望将$ {VALUE}替换为环境变量$ VALUE,如果在构建运行时设置了$ VALUE,则该值很有效.真棒.
但是,这些env变量只在我们的官方构建环境(由Jenkins)中设置,而不是在开发人员构建中,所以$ {values}会在过滤后留在属性文件中,这可能会破坏内容.我宁愿不要求在开发人员环境中使用env vars,因为这总是会导致脆弱的开发构建和狡猾的开发人员.
如果设置了环境变量值,如果未设置env var,如何使用其他默认属性值?
从我的测试来看,它默认是相反的,因为在pom中设置的属性将覆盖环境变量以用于资源过滤.
谢谢
Cha*_*suk 44
我正在使用配置文件来确定
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>!myproperty</name>
</property>
</activation>
...
<properties>
<myproperty>some value</myproperty>
</properties>
</profile>
...
</profiles>
Run Code Online (Sandbox Code Playgroud)
请注意
activeByDefault设置为true的目的,在默认情况下启用它.!myproperty意味着该属性缺失或不存在.myproperty不存在,只需使用相应的myproperty定义properties.您可以在http://maven.apache.org/guides/introduction/introduction-to-profiles.html上看到更多信息.
我希望这可能有助于实现您的要求.
问候,
Charlee Ch.
在使用环境值表示文件系统路径时,在我们的开发组中遇到同样的问题 - 特别是linux和windows之间的区别.
基于同一问题的其他解决方案:
<profile>
<id>MY_VAR default value</id>
<activation>
<property>
<name>!env.MY_VAR</name>
</property>
</activation>
<properties>
<env.MY_VAR>default value</env.MY_VAR>
</properties>
</profile>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20828 次 |
| 最近记录: |