Spring-Boot-Maven-Plugin> = 1.4.0 Änderungen der JAR-Struktur
Ich habe ein Spring-Boot-Projekt, in dem sich alle Integrationstests in einem separaten Modul befinden, das das Anwendungsmodul mit @ startespring-boot-maven-plugin
während derintegration-test
Phase und führt die Suite dagegen aus. Dieses Konstrukt funktionierte einwandfrei, bis es auf 1.4.0.RELEASE aktualisiert wurde. Jetzt bekomme ich einClassNotFoundException
.
Nachdem ich die JAR-Struktur "1.4.0" überprüft habe, habe ich herausgefunden, dass es anders ist als die JAR-Struktur "1.3.6". Alle Pakete befinden sich nicht mehr auf oberster Ebene, sondern in den Ordnern BOOT-INF usw. (siehe Screenshots unten). und der Klassenlader kann das in der "mainClass" definierte Paket nicht mehr finden.
Hat jemand eine Idee, wie das Problem behoben werden kann und ob diese Lösung in der neuen Version möglich ist?
Danke im Voraus
ITest Modul:
<!-- dependency to the app module -->
<dependency>
<groupId>com.company.app</groupId>
<artifactId>app-module</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<mainClass>com.company.app.RunServer</mainClass>
</configuration>
<executions>
<execution>
<id>pre-integration-test</id>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>post-integration-test</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Anwendungsmodul:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>