概述
一、背景
最近在搞一个新项目,使用maven父子项目管理了一系列Module,而这些Module需要放到不同的Application中走DevOps流程运行。在开发阶段有些Module的打包插件使用的是SpringBoot的maven插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
</plugins>
</build>
然后在另一个Application中的pom.xml引入了相应依赖(比如是test-a.jar),但是SpringBoot程序启动时找不到test-a.jar中的所有类。但是可以找到其他依赖jar包的类。
二、原因分析
在SpringBoot处理@ComponentScan注解时打个断点,看看扫描路径、已经是否扫到相相应的jar包:
继续往后走:
发现SpringBoot根据包路径找不到相应的jar包,继续对比可以找到的jar包和找不到的jar包的结构:
通过对比结果发现:扫描不到的jar包是使用SpringBoot的maven插件打的包。
SpringBoot的源码如何看?见笔者的SpringBoot专栏:https://blog.csdn.net/saintmm/category_11339528.html
三、解决方案
不要使用SpringBoot的maven插件,使用maven自己的打包插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
</plugin>
最后
以上就是自信雪糕为你收集整理的SpringBoot项目扫描不到其他SpringBoot项目jar包下类的问题(maven插件导致)一、背景二、原因分析三、解决方案的全部内容,希望文章能够帮你解决SpringBoot项目扫描不到其他SpringBoot项目jar包下类的问题(maven插件导致)一、背景二、原因分析三、解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复