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

2024-05-07

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

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

我希望将 ${VALUE} 替换为环境变量 $VALUE,如果在构建运行时设置了 $VALUE,则效果很好。惊人的。

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

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

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

Thanks


我正在使用配置文件来确定

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

请注意

  1. The activeByDefault设置为 true 是为了默认启用它。
  2. The !myproperty意味着该属性丢失或不存在。
  3. If the myproperty不存在,只需使用myproperty定义于properties反而。

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

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

Regards,

查理·Ch.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐