如何使用属性激活Maven子模块中的配置文件?

时间:2018-11-15 04:06:18

标签: maven

我正在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无法看到通过命令行传递的属性。使用属性激活子模块中的配置文件的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

在使用Maven版本插件时,必须使用-Darguments参数传递参数。

例如,正确的调用为:mvn -DactivateMyProfile release:prepare

,而不是使用mvn -Darguments=-DactivateMyProfile release:prepare

如果有多个参数,请使用mvn -Darguments="-DactivateMyProfile -DsomeOtherArg -DanotherArg=something" release:prepare