У меня есть многомодульный проект Maven, который содержит приложение, состоящее из нескольких сервисов Spring Boot. Я пытаюсь настроить интеграцию и сквозные тесты для сервисов и использую комбинацию плагинов Maven для организации этого.
У меня есть один модуль, который предназначен для проведения только сквозных тестов для групп сотрудничающих служб, выполняющих некоторую работу. Он содержит только тестовый код и ресурсы. Я использую плагин failsafe (org.apache.maven.plugins:maven-failsafe-plugin
) для выполнения интеграционных тестов, плагин Spring Boot Maven (org.springframework.boot:spring-boot-maven-plugin
) для запуска и остановки «основной» службы и плагин Maven exe c (org.codehaus.mojo:exec-maven-plugin
) чтобы запустить другие службы, которые используются в сквозных тестах.
Я столкнулся с проблемой, которая, похоже, связана с целью repackage
плагина Spring Boot. В модуле e2e нет ничего, что нужно переупаковывать, поэтому я хочу пропустить эту цель. Не должно быть слишком сложно, верно?
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
<execution>
...
Ну, это не работает. Несмотря на это, он выполняет переупаковку.
Проблема в том, что сборка Maven завершается неудачно, потому что не может найти «основной» класс для переупаковки (я считаю, что это исполняемый файл jar). Что ж, у нет основного класса для этого модуля.
Более важный вопрос: почему игнорируется <skip>true</skip>
?