maven-assembly-plugin导致测试运行两次

时间:2010-09-03 00:08:47

标签: maven-2 maven-assembly-plugin

我有一个maven项目,我正在使用程序集插件。 我通常通过运行来创建我的工件: mvn clean验证程序集:程序集 (我有集成测试,我想单独运行到单元测试)。

当它运行时,程序集插件正在运行单元测试本身。 这导致它们运行两次。

有没有办法告诉程序集插件不要运行测试? 我很想通过两个步骤来执行此操作: 1. mvn清洁验证 2.如果上一个命令成功,则运行mvn assembly:assembly -DskipTests = true

然而,这有点笨拙,宁愿单一命令。

谢谢, 史蒂芬

1 个答案:

答案 0 :(得分:2)

  

当它运行时,程序集插件正在运行单元测试本身。这导致它们运行两次。

assembly:assembly目标在执行之前调用生命周期阶段包的执行并在命令行上运行它将调用{{1}之前的任何phase }}。这包括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)绑定它。

如果您不希望系统地创建程序集,请将上述配置放在配置文件中。