版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012099869/article/details/80268057
一、使用示例
项目结构为:
首先 pom.xml
中引入 assembly
插件:
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<finalName>order-${project.version}</finalName>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
</plugins>
descriptor
中定义 assembly
配置文件地址。
assembly.xml
配置文件内容为:
<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>bin</id>
<baseDirectory>order-${project.version}</baseDirectory>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.basedir}/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>${project.basedir}/conf</directory>
<outputDirectory>conf</outputDirectory>
<fileMode>0644</fileMode>
<lineEnding>unix</lineEnding>
</fileSet>
<fileSet>
<directory>${project.basedir}/doc</directory>
<excludes>
<exclude>*</exclude>
</excludes>
</fileSet>
</fileSets>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>order:order-api</include>
<include>order:order-core</include>
</includes>
<binaries>
<outputDirectory>lib/</outputDirectory>
<unpack>false</unpack>
<dependencySets>
<dependencySet>
<outputDirectory>lib/</outputDirectory>
</dependencySet>
</dependencySets>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
主要属性说明如下:
fileSets
: 定义自定义文件存放位置,即 directory
目录内的文件输出到 outputDirectory
目录。
moduleSets
: 定义 module
的存放位置。
dependencySets
: 定义处理模块依赖的jar如何存放。
此处参考: Maven 初尝试踩坑记录
二、打包方式
打包命令为:
mvn -s /Users/wengliemiao/Documents/study/apache-maven-3.3.9/conf/settings.xml package assembly:assembly
注: 使用 package
和 assembly:assembly
命令组合的方式才能生效。
扫描二维码关注公众号,回复:
3464470 查看本文章
执行完打包命令后生成的压缩包结构为:
压缩包解压后:
定义在 moduleSet
中 include
的模块: