Maven:从命令行执行并在config中执行多次执行

我想从命令行执行插件目标,但执行插件的多次执行。 为此,我的POM看起来像这样:

 xxx.yyy zzz 1.1.6   default-cli-1  mygoal   .... config1 ....    default-cli-2  mygoal   .... config2 ....     

我想做的是:

 mvn xxx.yyy.zzz:mygoal 

然后执行两次执行。 但我无法弄清楚如何。

我知道从命令行执行时我不能使用 。 这就是default-cli的用途。 但是 必须是唯一的,这意味着我只能将default-cli置于一次execution

Maven 3.0.5版。

您可以通过@executionId附加选项从Maven 3.3.1开始从命令行执行目标(及其执行)和此新function。

关于Maven和执行id生成,您也可以检查这个SO问题 。


在Maven 3.3.1之前,您可以将两个执行绑定到一个通常不会造成伤害的阶段(如validate ),并具有如下内容:

  org.apache.maven.plugins maven-jar-plugin 2.5   execution-1 validate  jar   something1    execution-2 validate  jar   something2     

然后执行:

 mvn validate 

作为无害阶段的一部分,您将有效地执行同一插件的相同目标的两次执行。

如果您不希望默认情况下将它们作为此阶段的一部分(可理解),则可以将它们移动到配置文件并在执行过程中将其激活:

 mvn validate -PpluginGoalExecution 

为完整起见,配置文件看起来像:

  pluginExecution    org.apache.maven.plugins maven-jar-plugin 2.5   execution1 validate  jar   something1    execution2 validate  jar   something2        

并且不言而喻:在这种情况下,配置文件的id应该非常自我解释哪个插件和它实际执行的目标(也就是说,配置文件的目的,像往常一样)。

更新
只是装饰,但您也可以添加到元素上方的配置文件构建:

 validate 

这样您只需要运行以下Maven命令(仅限配置文件激活):

 mvn -PpluginGoalExecution 

然后它会自动执行validation阶段和配置的插件执行。 不是一个很大的改变(正如我所说,化妆品),但可能更接近插件目标执行而不是Maven阶段调用(再次,只是外观)。