当它运行时,程序集插件正在运行单元测试本身。这会导致它们运行两次。
assembly:assembly
目标在执行自身之前调用生命周期阶段包的执行并在命令行上运行它因此将调用之前的任何阶段package
。这包括test
阶段。
有没有办法告诉程序集插件不要运行测试?
不。我的建议是创建程序集作为构建生命周期的一部分,而不是在命令行上调用插件,即将它绑定到特定阶段。例如:
<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>
如果您不希望在集成测试失败时创建程序集,则在稍后阶段(例如post-integration-test
或verify
)绑定它。
如果您不希望系统地创建程序集,请将上述配置放在配置文件中。