今天打包SpringBoot多模块项目的时候遇到了一个坑的问题。有时候打包成功,有时候打包不成功。
打包不成功的话会报错 ”XXX程序包不存在,找不到符号“。
即使打包成功后,也有如下报错:
奇怪的是IDEA里直接运行是可以的。
最后发现是SpringBoot打包插件的问题:多模块项目打包的时候,需要把插件放在启动类所在的模块。
假设目录结构如下:
root.pom.xml
--------A.pom.xml
--------B.pom.xml
--------C.pom.xml
如果启动类在B.pom.xml,那么一定要把打包插件也放在B.pom.xml,不要配在最外层。
另外项目里如果有多个启动类,需要人工指定一下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.3.RELEASE</version>
<configuration>
<mainClass>com.zikoo.wms.api.StartWmsApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>