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

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

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

扫描二维码关注公众号,回复: 3464470 查看本文章

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

压缩包解压后:
解压后

定义在 moduleSetinclude 的模块:
include 模块

猜你喜欢

转载自blog.csdn.net/u012099869/article/details/80268057