首先在这里感谢 maven模块化项目总共模块相互引用打包失败问题 提供的经验,十分感谢!!!
背景:项目到了需要打包部署的时候,却在打包这一步被拦截实在是吐血!!!!
项目结构:
framework-parent 作为最顶级的父级 pom(当然本身存在父级pom org.springframework.boot)存储所有项目需要的依赖,包括私服配置。
framework-pro 是 framework-parent 的子项目,其下有三个子模块
-
pro-api-entity
-
pro-service-admin
-
pro-service-other
其中,pro-api-entity 只存放单纯的entity类,pom <packaging>jar</packaging> 不添加其他依赖和插件,
pro-service-admin 引入 pro-api-entity 的依赖,pro-service-other 引入 pro-api-entity 和 pro-service-admin 的依赖
坑来了!!!
按照正常的逻辑,从最顶级 一层一层 clean 和 install 下来,pro-service-admin install 以及 package 成功,然而 pro-service-other
install 以及 package 却报错,报错内容是pro-service-admin的一个程序包找不到内容,查看maven,也是有存在的依赖的,这就百思不得其解了。找百度发现,原来!!我们引入的包应为不可执行的jar包,pro-service-admin 的 pom 定义spring-boot-maven-plugin插件,因为这个SpringBoot插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,所以打包的时候果断先把pro-service-admin 的 pom 定义spring-boot-maven-plugin插件屏蔽了,果然再次打包就可以顺利成功了。