Maven:如何从命令行激活配置文件?

时间:2015-06-18 22:44:02

标签: maven pom.xml

这是我的pom.xml的一个片段。 我尝试了以下操作,但配置文件未激活。

mvn clean install -Pdev1
mvn clean install -P dev1

当我尝试mvn help:active-profiles时,没有任何个人资料被列为有效状态。 如果我将<activeByDefault>的{​​{1}}设置为dev1,然后运行true,则会显示该个人资料已激活。

mvn help:active-profiles

我想知道为什么我的个人资料没有被激活。有没有人遇到类似的问题?

4 个答案:

答案 0 :(得分:58)

你不会用

看到它
mvn help:active-profiles

因为命令中没有-Pdev1

你会看到mvn help:active-profiles -Pdev1(但显然没有意义)。

您展示的命令:

mvn clean install -Pdev1
mvn clean install -P dev1

是对的。问题可能是,配置文件未被激活,而是它没有按照您的预期执行。

为了确保是这种情况,您可以在个人资料中将activeByDefault设置为 true ,然后启动mvn help:active-profiles以查看其已被有效激活,然后启动{{1}并检查配置文件是否符合您的预期(可能不是这种情况)。

答案 1 :(得分:13)

系统属性的激活可以按如下方式进行

<activation>
    <property>
        <name>foo</name>
        <value>bar</value>
    </property>
</activation>

使用-D运行mvn build以设置系统属性

mvn clean install -Dfoo=bar

此方法还有助于在项目工件的传递依赖性中选择配置文件。

答案 2 :(得分:5)

我遇到了这个问题,我通过在运行mvn cli命令时添加-DprofileIdEnabled=true参数解决了上述问题。

请将您的mvn cli命令运行为:mvn clean install -Pdev1 -DprofileIdEnabled=true

除了此解决方案之外,您无需删除POM中提到的 activeByDefault 设置作为上述答案。

我希望这个答案可以解决你的问题。

答案 3 :(得分:3)

只需删除激活部分,我不知道为什么-Pdev1不会覆盖默认的错误激活。但如果你省略这个:

<activation> <activeByDefault>false</activeByDefault> </activation>

然后只有在明确声明为-Pdev1

后才能激活您的个人资料