我有一個spring-boot項目,其中所有的集成測試都在單獨的模塊中,在integration-test
階段使用spring-boot-maven-plugin
啓動應用程序模塊,並針對它執行套件。 這個構造工作正常,直到它升級到1.4.0.RELEASE。現在我得到一個ClassNotFoundException
。spring-boot-maven-plugin> = 1.4.0 jar結構變化
當我檢查了「1.4.0」jar結構後,我發現它與「1.3.6」不同,所有軟件包都不在頂層,而是在BOOT-INF等文件夾中(請參閱屏幕下面的圖片),類加載器不能再找到在「mainClass」中定義的包。
有人有解決它的想法,如果這種解決方案是可能的新版本?
在此先感謝!
ITEST模塊:
<!-- 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>
應用模塊:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
感謝您的回覆!這是一個很好的總結,但我沒有說比我已經知道的更多。我沒有看到類加載器無法在新的jar結構中找到我的類的問題的解決方案。如果我使用_classifier_方法找到類,但啓動應用程序所需的依賴關係不再可用。 – cecode