发表于: 2017-11-15 23:22:46

1 808


今天完成的事情:

今天主要做的事情是收集小课堂资料,写PPT,以下把简书的内容贴一下

大家好,我是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#

八、更多讨论

视频链接:视频

PPT链接:PPT

感谢大家观看


明天计划的事情:

1.回想那些复盘评审的东西也忘得差不多,去复习一下

2.把接口文档写成标准的模式,还有方案设计


遇到的问题:

没遇到问题


收获:

以前不知道assembly和shade的区别,还以为天下打包工具都是一样的,现在知道assembly可以打很多种格式的包,而shade可以有效的解决打的包中的依赖文件冲突,还知道了怎么不用插件而只用idea来直接打可执行的jar包


进度:

小课堂完成,准备进行接口文档的书写和方案设计,准备进行表的设计


返回列表 返回列表
评论

    分享到