环境:intellij idea 2016.3,jdk1.8,maven 3.3.9,springboot 1.5.2,项目都是maven项目
当一个project有多个moudle,就是这样的 时,假设eom-web是主moudle,eom-web依赖了eom-biz,那对web打包时,biz不会自动打包,在打包时其所有依赖的moudle也同时打包需要以下操作。
在主moudle,本例是web的package右键菜单
可以看到如下界面
在下方加几个maven goal(可以理解为maven的操作)
先选择maven项目,这里选择的是被依赖的,然后command line输入clean,点【确定】
一个依赖项目,添加两个maven goal,分别是:clean、install
PS:如果只install不clean,有时会没有效果
PS2:每个依赖项目都要加
PS3:添加的顺序最好跟依赖的层级相关
最后确定完成添加,会多了这个东西
打包时双击这个就行,代替单moudle的package
原理:
由于依赖的maven库的jar文件是统一放在系统中由maven管理的一个目录(以下简称:maven库),例如:C:\Users\xxx\.m2\repository,当maven项目打包时,其依赖的库的jar文件从maven库中获取(复制)
另一个问题是,maven库的jar文件怎么来?就是install操作 ,install做的是生成jar文件,并把jar文件复制到maven库
因此上述的配置,配置成在打包(package)前,先install依赖的子项目(moudle),install后就使得maven库的jar是最新的,然后才package