Плагин Maven Failsafe не добавляет цель / классы в classpath - PullRequest
0 голосов
/ 05 июня 2018

У меня есть следующая конфигурация по умолчанию для плагина 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>

В документации указано, что путь к классам по умолчанию включает в себя каталоги target/test-classes и target/classes вэтот порядок.Однако когда я запускаю mvn clean install или mvn 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 goal специально вместо фазы, тогда путь к классу включает classes сразу после test-classes, и тесты успешны, что соответствуетс документацией.

Что я не понимаю в процессе сборки?Почему путь к классу отличается при запуске фазы, а не цели?Как я могу получить classes в classpath даже при запуске фазы?

...