(转)SpringBoot项目打包时提示“程序包xxx不存在,找不到符号”解决办法(已解决)


https://blog.csdn.net/weixin_46053707/article/details/104623641?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

SpringBoot项目打包时提示“程序包xxx不存在,找不到符号”解决办法(已解决)
项目结构:

xxx-parent:顶级父工程

xxx-a:子项目1

xxx-b:子项目2

xxx-c:子项目3

如图:


问题场景:
在运行引导类的时候,一直提示“程序包xxx不存在,找不到符号”

原因分析:
原来是springboot自身的编译插件spring-boot-maven-plugin导致的。

1 <build>
2     <plugins>
3         <plugin>
4             <groupId>org.springframework.bootgroupId>
5             <artifactId>spring-boot-maven-pluginartifactId>
6         plugin>
7     plugins>
8 build>


如上,就是springboot的maven插件,用这个插件打包的Jar包可以直接运行,但是不可依赖!

解决方案(三选一):
1、(推荐) 不要将此插件放到顶级父工程中,在需要打成可执行jar的地方添加就好了,如果是需要被依赖的,就不要添加此插件(如上述案例中,就是xxx-a、xxx-b不加,xxx-c需要加);

SpringBoot项目运行引导类时候出现此类问题一般删除此依赖,在maven中clear一下项目再install一下就能解决

2、 在需要对外提供依赖的项目的pom里设置(如本项目的xxx-a、xxx-b),这样设置会让项目生成两个jar:一个可执行jar,一个可依赖的jar;

 1 <build>
 2     <plugins>
 3         <plugin>
 4             <groupId>org.springframework.bootgroupId>
 5             <artifactId>spring-boot-maven-pluginartifactId>
 6             <configuration>
 7                 
 8                 
 9                 <classifier>execclassifier>
10             configuration>
11         plugin>
12     plugins>
13 build>


3、在configuration中加入skip标签,取消生成可执行jar;

 1 <build>
 2     <plugins>
 3         <plugin>
 4             <groupId>org.springframework.bootgroupId>
 5             <artifactId>spring-boot-maven-pluginartifactId>
 6             <configuration>
 7                 <skip>trueskip>
 8             configuration>
 9         plugin>
10     plugins>
11 build>




org.springframework.boot
spring-boot-maven-plugin