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阶段调用(再次,只是外观)。