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

jar Struktur <1.4.0

jar Struktur> = 1.4.0

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>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage