Maven Failsafe插件没有将目标/类添加到类路径

时间:2018-06-05 19:36:27

标签: java maven junit classpath maven-failsafe-plugin

我有Maven Failsafe插件的以下默认配置:

  <plugin>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.20</version>
    <executions>
      <execution>
        <id>default-integration-test</id>
        <phase>integration-test</phase>
        <goals>
          <goal>integration-test</goal>
        </goals>
      </execution>
      <execution>
        <id>default-verify</id>
        <phase>verify</phase>
        <goals>
          <goal>verify</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

documentation表示默认类路径按顺序包含target/test-classestarget/classes目录。但是,当我运行mvn clean installmvn integration-test时,我看不到classes文件夹作为类路径的一部分。这导致测试失败,因为我从我的源代码中将一个类注入到测试中,并且我得到NoClassDefFound异常。

这是详细输出:

  

[DEBUG] test(compact)classpath:test-classes package.jar javax.inject-1.jar cdi-api-1.2.jar ...

正如您所看到的,应该在项目依赖项之前添加classes文件夹,但事实并非如此。

但是,当我专门运行mvn failsafe:integration-test 目标而不是阶段时,类路径会在classes之后立即包含test-classes并且测试成功,这与文档一致。

我对构建过程有什么不了解?为什么运行阶段时类路径不同而不是运行目标?即使在运行阶段时,如何在类路径中获得classes

0 个答案:

没有答案