spring-boot-maven-plugin
我有一个 spring-boot 项目,其中所有集成测试都在单独的模块中,该模块在该阶段启动应用程序模块integration-test
并针对它执行套件。在升级到 1.4.0.RELEASE 之前,此构造运行良好。现在我得到一个ClassNotFoundException
.
在我检查了“1.4.0”jar 结构后,我发现它与“1.3.6”不同,所有包都不再位于顶层,而是在 BOOT-INF 等文件夹中(见下面的屏幕截图)和类加载器无法再找到“mainClass”中定义的包。
有人对修复它有什么想法吗?这个解决方案在新版本中是否可行?
jar 结构 < 1.4.0:
jar 结构 >= 1.4.0:
测试模块:
<!-- 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>