SpringBoot项目打包时提示“程序包xxx不存在,找不到符号”解决办法(已解决)
程序员文章站
2022-06-05 18:58:44
...
SpringBoot项目打包时提示“程序包xxx不存在,找不到符号”解决办法(已解决)
项目结构:
xxx-parent:*父工程
xxx-a:子项目1
xxx-b:子项目2
xxx-c:子项目3
如图:
问题场景:
在运行引导类的时候,一直提示“程序包xxx不存在,找不到符号”
原因分析:
原来是springboot自身的编译插件spring-boot-maven-plugin导致的。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</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;
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 生成可执行的jar的名字:xxx-exec.jar -->
<!-- 不固定,写成abcd都可以 -->
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
3、在configuration中加入skip标签,取消生成可执行jar;
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
上一篇: CentOS 7.7 配置防火墙