【发布时间】:2011-01-02 21:59:41
【问题描述】:
我有一个 Maven POM 文件,其中包含在测试阶段运行的插件。为了只执行那个插件而不是那个阶段的所有插件,我必须传递哪些命令行参数?我也在尝试执行一个特定的 ant-run 插件,如下所示:
谢谢。
【问题讨论】:
标签: testing maven-2 command-line
我有一个 Maven POM 文件,其中包含在测试阶段运行的插件。为了只执行那个插件而不是那个阶段的所有插件,我必须传递哪些命令行参数?我也在尝试执行一个特定的 ant-run 插件,如下所示:
谢谢。
【问题讨论】:
标签: testing maven-2 command-line
以以下形式指定完全限定的目标:
mvn groupID:artifactID:version:goal
例如:
mvn sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi
编辑:我正在修改我的答案以涵盖初始问题的更新和 OP 的评论。
我不会详细介绍所有细节,但对于 antrun 插件的特殊情况,您可以直接运行:
mvn antrun:run
但是现在您已经更新了问题,我知道事情比我最初想象的要复杂一些,我认为这实际上不会奏效。我的意思是,调用mvn antrun:run 不会失败,但它不会拾取绑定到test 阶段的execution 的configuration。
我能想到的唯一(丑陋的)解决方案是在特定配置文件中添加另一个 maven-antrun-plugin 配置,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<dependencies>
<dependency>
<groupId>com.googlecode.jslint4java</groupId>
<artifactId>jslint4java-ant</artifactId>
<version>1.3.3</version>
</dependency>
</dependencies>
<configuration>
<tasks>
<ant antfile="${basedir}/jslint.xml">
<property name="root" location="${basedir}" />
<target name="jslint" />
</ant>
</tasks>
</configuration>
</plugin>
并在调用antrun:run 时使用此配置文件:
mvn antrun:run -Pmyprofile-for-antrun
【讨论】: