为什么使用-D而不是-P来激活maven配置文件?

时间:2013-08-29 09:54:59

标签: java maven

e.g。

<profiles>
    <profile>
        <id>rofileX</id>
    </profile>
</profiles>

可以使用-ProfileX激活配置文件,为什么我看到人们懒得加入激活属性,例如。

<profiles>
    <profile>
        <id>rofileX</id>
        <activation>
            <property>
                <name>oX</name>
            </property>
        </activation>
    </profile>
</profiles>

允许使用-DoX激活?

有没有理由使用-P的-D信息?或者你可以用-D来实现更多的东西,而不是-P?

谢谢

2 个答案:

答案 0 :(得分:4)

-Dmyproperty代替-Pmyprofile的一种用法是仅使用一个参数激活多个配置文件。

此外,您可以使用-Dmyproperty在POM的其他部分重复使用${myproperty}

答案 1 :(得分:1)

该属性不一定必须通过-D maven选项设置,它也可以是系统属性。因此,可以在不更改调用的情况下在配置文件之间切换。

[编辑] 来自Maven documentation

-D, --define <arg>
Defines a system property

...

Properties defined on the command line are also available as properties to be used in a Maven POM or Maven Plugin