maven常用的打包插件有哪些?有什么区别?如何使用 ?

大家好,我是IT修真院深圳分院第4期学员,一枚正直善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务2中,深度思考部分的知识点——Maven 打包插件的设置及使用

一、背景介绍

打包是我们经常要使用的一个功能,但是maven或java本身的打包功能有的时候并不能满足我们的要求,例如我们想要得到一个使用“java -jar xxx.jar”命令就可以直接运行的包,这就是上述的打包功能所做不到的。这也就是我们今天小课堂的目的,打出一个可以满足自己需要的包

二、知识剖析

打包的用途

从任务1~任务9,目前为止打包的用途有三个

1.专供依赖引用的jar包,也就是我们在maven的pom.xml引入的依赖包

2.Web应用程序的war包,通常我们部署网站使用的都是war包

3.可以直接执行的jar包,在任务8、任务9Web端和Service端分离,Service端的本体就是一个可执行jar包

常用的打包工具

非maven的有两个,在maven中配置的有三个

1.package,maven自带的命令打包,平时的打包基本够用,但不能打可直接运行的jar包

2.IDEA自带的打包工具,不过打的包很容易出现冲突

3.jar-dependency插件,繁琐,性能差,不建议使用

4.assembly插件,可以打多种格式的包,具有基本的解决所打jar包内依赖包冲突的问题,但一旦出现冲突则无法解决

5.shade插件,终极杀器,jar包出现依赖包冲突可以通过调整配置解决

三、常见问题

这五种打包工具,有什么区别?

四、解决方案

打包工具虽多,但用途、性能是有所区别的

按性能分类

shade>assembly>IDEA自带>package>jar插件

按用途分类

1.打不依赖其他包的引用jar包:全部

2.打依赖其他包的引用jar包:shade、assembly、IDEA自带

3.不依赖其他包的可运行jar包:shade、assembly、IDEA自带、

4.依赖其他包的可运行jar包:shade、assembly、IDEA自带

5.需要将包打成各种格式如zip、tar.gz等格式:assembly

6.当出现jar包冲突时:统一采用shade

总结

懒得不想装插件使用package或IDEA自带,但是经常会出现冲突;需要打不同格式的包使用assembly;上述插件出现冲突使用终极大杀器shade

五、编码实战

六、扩展思考

七、参考文献

1.csdn博客:http://blog.csdn.net/xiao__gui/article/details/47341385

2.shade官网:http://maven.apache.org/plugins/maven-shade-plugin/

3.assembly官网:http://maven.apache.org/plugins/maven-assembly-plugin/index.html#

八、更多讨论

undefined_腾讯视频

视频链接:视频

PPT链接:PPT

感谢大家观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:13299900,或者你可以直接点击此链接:http://www.jnshu.com/login/1/13299900

    原文作者:夏之澜
    原文地址: https://www.jianshu.com/p/e52ab563de65
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞