我有一个maven项目,我正在使用程序集插件.
我通常通过运行来创建我的工件:
mvn clean验证程序集:程序集
(我有集成测试,我想单独运行到单元测试).
当它运行时,程序集插件正在运行单元测试本身.
这导致它们运行两次.
有没有办法告诉程序集插件不要运行测试?
我很想通过两个步骤来执行此操作:
1. mvn清洁验证
2.如果上一个命令成功,运行mvn assembly:assembly -DskipTests = true
但是,这有点笨拙,宁可单一命令.
谢谢,
史蒂芬
最佳答案
When this runs, the assembly plugin is running the unit tests itself. This causes them to be run twice.
assembly:assembly
目标在执行自身之前调用生命周期阶段包的执行,并且在命令行上运行它将因此在包之前调用任何phase.这包括测试阶段.
Is there a way I can tell the assembly plugin not to run the tests?
不.我的建议是将程序集创建为构建生命周期的一部分,而不是在命令行上调用插件,即在特定阶段绑定它.例如:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<executions>
<execution>
<id>create-my-assembly</id>
<phase>package</phase><!-- change this if not appropriate -->
<goals>
<goal>single</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
如果您不希望在集成测试失败时创建程序集,则在稍后阶段(例如,集成后测试或验证)将其绑定.
如果您不希望系统地创建程序集,请将上述配置放在配置文件中.