我正在Ubuntu 18.04上使用Maven 3.6.0和OpenJDK8(也已在Alpine Linux上进行了测试)。
我的项目根目录中有一个std::copy()
,其中包括我的子模块:
pom.xml
在...
<modules>
<module>mysubmodule</module>
</modules>
...
文件夹中,mysubmodule
拥有一个我想基于传递给pom.xml
可执行文件的属性来激活的配置文件:
mvn
然后我执行mvn以开始构建,但是该配置文件从未激活:
...
<profile>
<id>my-profile</id>
<activation>
<property>
<name>activateMyProfile</name>
</property>
</activation>
...
</profile>
...
,则配置文件将永远不会激活且永远不会运行mvn -DactivateMyProfile release:prepare
,则配置文件将永远不会运行。我也尝试过相反的方法:
mvn release:prepare
...
<profile>
<id>my-profile</id>
<activation>
<property>
<name>!doNotActivateMyProfile</name>
</property>
</activation>
...
</profile>
...
,则仍然执行配置文件mvn -DdoNotActivateMyProfile release:prepare
,则还将执行配置文件看来mvn release:prepare
无法看到通过命令行传递的属性。使用属性激活子模块中的配置文件的正确方法是什么?
答案 0 :(得分:0)
在使用Maven版本插件时,必须使用-Darguments
参数传递参数。
例如,正确的调用为:mvn -DactivateMyProfile release:prepare
mvn -Darguments=-DactivateMyProfile release:prepare
如果有多个参数,请使用mvn -Darguments="-DactivateMyProfile -DsomeOtherArg -DanotherArg=something" release:prepare