使用maven-assembly-plugin插件打包多module项目p,格式为zip,打完的包中多出了pom中未直接依赖的a.jar包
2.排查mvn dependency:tree 查看依赖树,并无a.jar的依赖
mvn dependency:tree -Dverbose 查看详细依赖情况发现来源为b.jar
查看b.jar的pom,如下:
b 1.0-SNAPSHOT * *
b.jar中依赖a.jar,b.jar使用通配符形式排除所有包
3.结论项目p 依赖b,b依赖a,b中以通配符形式排除所有包后,
在项目p中通过mvn查看依赖树已经排除了a
但通过maven-assembly-plugin插件(版本2.x)打完的包中仍然包含了a.jar
查看官方文档,记录了此bug,即:assembly低版本(3.1.1之前版本),使用通配符排除的包依然会被打进最终的包中。
https://blogs.apache.org/maven/entry/apache-maven-assembly-plugin-version
可通过升级assembly版本为3.1.1解决。



