您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】springboot项目打包时提示“程序包xxx不存在,找不到符号”
不忘初心 2019-08-02 围观() 评论() 点赞() 【JAVA开发】
简介:springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找不到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的。
springboot多包工程,在使用maven进行打包的时候,一直提示“程序包xxx不存在,找不到符号”,但项目是可以正常启动运行的,开始一直以为是maven哪里没有配置好导致的,后来才发现原来是springboot的maven插件导致的。
项目结构:
xxx-parent:顶级父工程
xxx-a:子项目1
xxx-b:子项目2
xxx-c:子项目3
依赖关系:
a -> b -> c,从左到右,依次被依赖(c依赖b,b依赖a)
问题场景:
在使用mvn package的时候,一直提示“程序包xxx不存在,找不到符号”,开始以为是依赖的上层包没打好,仔细检查后发现都没问题,就算将本地仓库中的依赖包清理之后,重新install打包也还是有这个问题
原因分析:
因为之前的springmvc出现过类似的问题(Maven打包失败,提示“找不到符号”),所以一开始也以为是本地仓库的缓存所致,浪费了好长时间,后来才发现原来是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需要加);
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>
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
- Maven打包环境切换了,但是复制文件失败
- DAO模块打包公用,避免项目中多处重复代码
- Maven历史旧版本官网下载图文教程
- Maven打包失败,提示“找不到符号”
- Compilation of Maven projects is supported only if external build is started from an IDE
- idea2019.2记不住maven全局配置的临时解决方案
- Jenkins+Git+Maven实现自动打包Jar/War并部署到Tomcat
- idea中的maven工程jdk老是自动变成1.5
- 手动打包安装jar包到本地maven仓库
- 使用mvn deploy命令将本地jar包发布到远程maven仓库
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们