SpringBoot 在 maven build 含有本地jar包时报错,问题排查和解决

  1. 最近的一个spring boot项目需要依赖本地的jar包(通过maven install安装到本地),项目编译和直接在Eclipse中运行没有一点问题。
  2. 但在maven build的时候,一直报编译错误,依赖的本地程序包找不到。在网上搜了各种解决方案,可最后还是报程序包找不到。
  3. 按理说,网上的解决方案,鱼龙混杂,但试了这么多,总应该有一种能解决的吧。想到会不会是自己依赖的本地jar包有问题呢。
  4. 查看了一下这个本地依赖的jar包,通过spring-boot-maven-plugin,打包成了spring boot项目。而spring boot jar包结构和能被项目依赖的jar包结构,有很大的区别,它不能被项目依赖。
  5. 最后导致了程序包找不到。所以要依赖的本地jar包,不再通过spring-boot-maven-plugin打包,可以在pom.xml文件中把spring-boot-maven-plugin注释掉后再打包,或者直接通过eclipse导出一个非runnable jar。
  6. 在项目根目录下新建一个文件夹lib,把这个jar包放在lib里面,再通过在pom.xml里面添加如下内容:
  7. 上图的 pom.basedir 也可以替换成 project.basedir 代表项目根目录,只是 project.basedir 会有警告