如何在一个Maven的命令执行多个目标,但使用不同的参数为每个目标

问题描述:

我试图运行2个Maven目标像一个Maven的命令:如何在一个Maven的命令执行多个目标,但使用不同的参数为每个目标

mvn release:prepare release:perform -Darguments='-Dmaven.test.skip=true' 

,但是,我想第一个目标跳过测试,第二个不跳过测试。

它必须在一行命令中。

有没有办法做到这一点,而不是在两个单独的命令中执行它们?

+0

你可以发布你的'POM.xml'文件内容,也许是最小的内容 – dvhh 2015-04-01 04:42:33

+0

你看过配置文件吗?这个问题可能会有所帮助,http://*.com/questions/17117589/how-can-i-skip-tests-in-maven-install-goal-while-running-them-in-maven-test-goa – Adi 2015-04-01 05:06:38

您可以使用以下方法:

mvn -Dmaven.test.skip=true release:prepare release:perform 

在释放插件参数通过-Darguments='....'传递到由release:perform启动子流程。其他参数传递到由release:prepare开始的进程。

+1

This不适合我。 -Dmaven.test.skip = true不会跳过任何目标的测试 – Eric 2015-04-06 23:42:35

我花了几个小时。

我的工作发布命令:

-Darguments='-DskipTests=true' -DskipTests release:prepare release:perform 

实际上是在释放我的插件问题:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <configuration> 
       <arguments>${release.arguments}</arguments> 

发布插件的“论据”参数被重写,我通过-Darguments到版本:准备(为了被传递到发布:通过发布执行:准备)。