使用场景:
在工作中使用maven管理项目时,需要将部分依赖包与开发的项目一起整合到一个jar文件中运行,其余的jar包放入axis2的lib文件夹下提供支持。maven-dependency-plugin和maven-jar-plugin不能满足需求,则需要用到maven assembly plugin这个强大的插件来分别生成。
使用说明:
在maven项目的pom文件的build节点添加如下依赖:
maven-assembly-plugin 3.1.0 smsServerMvn_V6.0.1_20171018 false src/main/assembly/assembly.xml src/main/assembly/generatorLib.xml make-jar package single
创建src/main/assembly文件夹,此时项目结构如图:
在assembly.xml文件中添加如下配置:
assembly-description jar false ${project.basedir}\target\classes\com com src/main/resources/META-INF META-INF true / com.oracle:ojdbc6 org.apache.mina:mina-core com.dareway.basic:basic-core
- format:压缩格式,有zip、tar、tar-gz、jar、war等。
- includeBaseDirectory:是否生成和项目名相同的根目录,默认是true,打成的jar包中会生成一个以项目名称为根的文件夹。
- fileSets:设置配置文件是否打进最终的jar包。常用的选项有文件原路径directory和输出路径outputDirectory
- dependencySets:设置依赖的jar包。unpack设置jar包是以.jar方式存进去还是以classes文件的形式存进去(与fatjar工具类似),默认为false。outputDirectory设置依赖jar包存放的路径。includes和excludes分别代表要将哪些jar包引入、将哪些jar包去除。如果没有写这两个选项,默认是将pom文件中所有的依赖生成到最终的jar文件中。可选项:scope等。
第二个assembly配置文件:(目的是将生成的jar放入外部的lib中)
assembly-lib zip lib com.oracle:ojdbc6 org.apache.mina:mina-core com.dareway.basic:basic-core
执行mvn命令:clean package
最终在target目录下生成了所需的jar包。
官方文档有更详细的说明: