使用mvn clean install打包到本地仓库作为依赖引入后无法import

一般我们使用 mvn clean install -DskipTests命令即可以把maven项目打包到Maven的本地仓库中,供其他项目使用。但是如果pom文件里集成了spring-boot-maven-plugin工具后打完的包会出现依赖能够正常引入,但是在import时找不到类的情况
网上找到的原因是:

使用spring-boot-maven-plugin插件打包的时候,会默认执行spring-boot:repackage命令。这样会引起两个变化:
①在原始jar的基础上重新打包成一个可执行的jar包,新形成的jar包不但包含应用类文件和配置文件,而且还会包含应用所依赖的jar包以及Springboot启动相关类(loader等),以此来满足Springboot独立应用的特性;
②同时把原始Maven打包的jar重命名为XXX.jar.original作为原始文件。
所以我们如果在其他项目的pom里面直接引入的话引用到的是重新打包后的可执行jar包,这样的包不能作为依赖引入,引入这样的jar会报错找不到类。

解决方案如下:

  1. 如果不需要打包成可执行文件,注释掉spring-boot-maven-plugin插件
  2. 使用mvn clean install -DskipTests -Dspring-boot.repackage.skip=true该命令跳过repackage命令
posted @ 2023-03-16 14:28  江南入直  阅读(281)  评论(0编辑  收藏  举报