[maven] maven-assembly-plugin 打包插件简介

一、使用示例

项目结构为:
项目结构

首先 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

注: 使用 packageassembly:assembly 命令组合的方式才能生效。

执行完打包命令后生成的压缩包结构为:
压缩包

压缩包解压后:
解压后

定义在 moduleSetinclude 的模块:
include 模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值