SpringBoot打成jar给其他应用引入后无法使用
问题复现:在面向接口开发过程中,一般都会将接口单独定义成一个jar包,接口提供方和接口调用方都引用这个jar包,但是我今天进行尝试的时候发现,虽然在pom文件中引用的api包,但是无法在代码中调用,查看本地仓库发现已经加载进去了,重启idea也没有解决这个问题。后面发现是因为我直接使用的SpringBoot自带的打包工具,改成maven原生的带包工具后成功解决问题。
两者的区别:使用了spring-boot-maven-plugin进行打包,那通过该插件打包的程序一般是作为独立运行的jar,直接可以通过java -jar xxx.jar命令运行,而maven-jar-plugin是jar包生成插件,提供了manifest的配置,生成jar包中一般存放的是.class文件以及resources目录下的东西,文件很小。初步猜测是如果该项目是作为依赖包导入到其他项目中,可能并不需要进行独立运行,至于原理还是一知半解,希望有大佬可以来给我解惑。