仅运行 Maven 中定义的一个特定测试插件的命令

Posted

技术标签:

【中文标题】仅运行 Maven 中定义的一个特定测试插件的命令【英文标题】:Command to run only one specific test plugin defined in Maven 【发布时间】:2011-01-02 21:59:41 【问题描述】:

我有一个 Maven POM 文件,其中包含在测试阶段运行的插件。为了只执行那个插件而不是那个阶段的所有插件,我必须传递哪些命令行参数?我也在尝试执行一个特定的 ant-run 插件,如下所示:

org.apache.maven.pluginsmaven-antrun-plugin1.3版本> com.googlecode.jslint4javajslint4java-ant1.3.3版本> 依赖> 依赖> jslint测试阶段> 运行目标> 目标> 任务> 配置> 执行> 执行> 插件>

谢谢。

【问题讨论】:

【参考方案1】:

以以下形式指定完全限定的目标:

mvn groupID:artifactID:version:goal

例如:

mvn sample.plugin:maven-hello-plugin:1.0-SNAPSHOT:sayhi

编辑:我正在修改我的答案以涵盖初始问题的更新和 OP 的评论。

我不会详细介绍所有细节,但对于 antrun 插件的特殊情况,您可以直接运行:

mvn antrun:run

但是现在您已经更新了问题,我知道事情比我最初想象的要复杂一些,我认为这实际上不会奏效。我的意思是,调用mvn antrun:run 不会失败,但它不会拾取绑定到test 阶段的executionconfiguration

我能想到的唯一(丑陋的)解决方案是在特定配置文件中添加另一个 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

【讨论】:

感谢 Pascal,有关于执行特定 ant run 插件的命令的提示吗? 感谢 Pascal,我有一种感觉,它可能必须涉及配置文件黑客才能工作。该死。希望 JSLint 插件很快就会得到一个专门的 Mojo。我认为目前正在开发中。

以上是关于仅运行 Maven 中定义的一个特定测试插件的命令的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SBT Jenkins 插件运行特定测试以进行 ScalaTest 测试

特定测试套件的 Maven 运行命令

maven ::在多模块项目中仅运行单个测试

使用 Maven 执行器跳过模块

使用 Maven,我如何运行特定的测试?

如何按特定顺序运行 Maven 测试? [复制]