用maven创建超级罐

时间:2016-08-23 14:10:58

标签: maven maven-assembly-plugin maven-shade-plugin

我的项目从父级继承了它的compile依赖项,我无法控制它 - 无法将它们更改为provided
此外,我已添加另一个依赖'a:b:1.0.0'到我项目的pom。我想只将'a:b:1.0.0'与自己的依赖项(递归)包含在我的超级jar中。
似乎assemblyshade插件都不支持此类情况。 怎么做到这一点? 感谢

1 个答案:

答案 0 :(得分:0)

递归着色有一些明显的缺点。特别是,仅使用单个版本的文件覆盖来自多个依赖项的重复文件的问题。这可能会导致一些非常烦人的问题在运行时进行故障排除。你最好使用像spring boot这样的东西来构建一个独立的jar,而不是将文件整形到一个单独的层次结构中,将依赖库作为子目录嵌入到自身中并包含在类路径中。

http://docs.spring.io/spring-boot/docs/current/maven-plugin/repackage-mojo.html