Maven常用的打包插件的区别和使用

李亚衡

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

Maven的使用贯穿task1-9,打包用的也是非常的多, 但是普通的打包方式很有可能满足不了我们的需求 ,所以我们就需要功能更强大的打包插件来帮助我们开发项目

2.知识剖析

常用的打包插件

  • Apache Maven JAR Plugin
  • Apache Maven Source Plugin
  • Apache Maven Dependency Plugin
  • Apache Maven Compiler Plugin
  • Apache Maven Assembly Plugin
  • Apache Maven Shade Plugin

Apache Maven JAR Plugin

将指定的一些文件打包成jar包 这个比较简单。 就将指定的文件打成jar包,使用mainfest,可以配置主执行类。 有主执行类,使用mvn package打包后可以用java-jar直接执行。

Apache Maven Source Plugin

SOURCE插件可用于从命令行创建项目源代码的jar文件,或将目标绑定到项目的生成周期。使用命令mvn source:jar生成jar

Apache Maven Dependency Plugin

Dependency插件提供了处理工件的功能。它可以将本地或远程存储库中的工件复制和/或解包到指定的位置

Apache Maven Compiler Plugin

编译器插件在Maven生命周期中已经被绑定到适当的阶段,因此在各自的阶段自动执行。

Apache Maven Assembly Plugin

Maven的Assembly Plugin主要是为了允许用户将项目输出及其依赖项, 模块,站点文档和其他文件聚合到一个可分发的归档文件中。 您的项目可以使用方便的预制装配描述符轻松地构建分布“组件” 。 这些描述符处理许多常见操作,例如将项目的工件与生成的文档一起打包到一个zip压缩文件中。 或者,您的项目可以提供自己的描述符,并假定对程序集中的依赖关系, 模块,文件集和单个文件的打包方式进行更高级别的控制

目前它可以创建以下格式的发行版:压缩,柏油,tar.gz(或tgz),tar.bz2(或tbz2),tar.snappy,tar.xz(或txz),罐,DIR,战争,以及ArchiveManager已配置的任何其他格式

Apache Maven Shade Plugin

这个插件提供了将工件打包到超级jar文件中的能力,包括它的依赖关系,以及对一些依赖关系的包进行阴影处理(即重命名)。

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html

3.常见问题

几种打jar包的方式

运行jar找不到主方法和主清单属性

怎么把jar包挂载到后台运行

4.解决方案

5.编码实战

6.扩展思考

打包的格式的种类

7.参考文献

Maven Plugin 官方文档

http://zhaoyanblog.com/archives/674.html

http://www.blogjava.net/liuguly/archive/2017/05/03/432496.html

http://blog.csdn.net/enweitech/article/details/67631997

8.更多讨论

谢谢观看

By:李亚衡