如果未设置环境值,则Maven将默认值设置为属性,如果设置,则覆盖默认值

时间:2020-10-12 10:50:53

标签: maven variables environment-variables maven-3

我在pom.xml中有一个简单的变量,当在运行的环境中设置环境变量时,该变量非常有用 例如:

gallery

如果没有在运行的env中定义my_var,这很好用, 但是当我服务

<properties>
        <my_var>XXXXX</my_var>      
        <image.name>${my_var}</image.name>
</properties>

并运行Maven我仍然在image.name中获得XXXXX值 如果定义,我需要环境变量覆盖默认值

1 个答案:

答案 0 :(得分:0)

您可以像以下示例一样在pom.xml中使用Maven配置文件:

<properties>
    <my_var>XXXXX</my_var>      
    <image.name>${my_var}</image.name>
</properties>

<profiles>
    <profile>
        <id>Y</id>
        <activation>
            <property>
               <name>envVarName</name>
               <value>true</value>
            </property>
        </activation>
        <properties>
           <my_var>YYYYY</my_var>
        </properties>
    </profile>
</profiles>

您可以根据环境变量的值来激活每一个。因此,如果您运行:

mvn clean package -DenvVarName=true(您也可以运行mvn clean package -PY

仅激活匹配配置文件,并且覆盖属性my_var。