文档章节

Maven Assembly Plugin示例

boonya
 boonya
发布于 2019/06/17 22:59
字数 751
阅读 3
收藏 0

3 月,跳不动了?>>>

工程结构如下:

在Maven配置文件pom.xml中添加Assembly插件,并将该插件绑定至package生命周期阶段

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
          http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sean</groupId>
    <artifactId>test</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>  
    
    <!--  这里指定的参数在之后可以通过${}进行调用  -->
    <properties>
        <base.dir>/</base.dir>
      </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xsl</include>
                    <include>**/*.xml</include>
                    <include>**/*.xsd</include>
                    <include>**/*.properties</include>
                    <include>**/*.txt</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>META-INF/**</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <!--  gtoupId的值属于默认值,可以省略  -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.1</version>
                <configuration>
                    <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-package</id>
                        <!--  将Assembly的single目标绑定至Maven的package阶段,
                                当调用mvn package时,Maven在调用maven-jar-plugin:jar生成jar包之后,
                                将会调用maven-assembly-plugin:single生成tar.gz包  -->
                        <phase>package</phase>
                        <goals>
                            <!--  Assembly的主要目标,其它目标将在未来版本移除,不推荐使用  
                                    single : your assemblies are created  
                                    as part of your normal build process.  -->
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

之后需要添加Assembly插件自己的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<assembly>
    <!-- 最终生成的包名称为artifactId-version-id.format,
            id主要用来区分包是由哪个assembly文件生成的,本例中
            artifactId:test
            version:1.0.0
            id:bin
            format:tar.gz
            最终将会在target文件夹下生成一个名为test-1.0.0-bin.tar.gz的包 -->                                       
    <id>bin</id>
    <!-- zip, tar, tar.gz, tar.bz2, jar, dir, war 也是支持的  -->
    <formats>
    <!-- 可以同时打多种格式的包  -->
        <format>tar.gz</format>
        <!-- <format>zip</format> -->
    </formats>
    <!--  默认值是true,此时将创建一个名为artifactId-version的根文件夹,
            所有outputDirectory标签指定的路径将变为相对于该文件夹的路径。
            例如:outputDirectory的值为/test,则最终径为/artifactId-version/test
            如果includeBaseDirectory的值是false,则最终路径为/test  -->
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <!-- 如果存在fileSet标签,并且在标签中没有使用includes标签指定打入包中的文件,
                默认情况下,工程中的所有文件(源文件、编译后产生的.class文件、配置文件等)
                  都会被打入包中  -->
        <fileSet>
              <outputDirectory>${base.dir}</outputDirectory>
              <includes>
                  <include>readme.txt</include>
              </includes>
            <excludes>
                  <exclude>*.xml</exclude>
                  <exclude>script/*</exclude>
              </excludes>
        </fileSet>
    </fileSets>
     <files>
        <file>
            <!--  source不能使用模糊匹配,必须是特定的文件  -->
              <source>config.properties</source>
              <outputDirectory>${base.dir}</outputDirectory>
        </file>
    </files>
     <dependencySets>
         <dependencySet>
             <!--  true是默认值,本次构建出来的jar包属于当前这个dependencySet,
                     此时jar包将会被添加至新的tar.gz包中  -->
             <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>${base.dir}</outputDirectory>
        </dependencySet>
        <dependencySet>
            <!-- 本次构建出来的jar包不属于当前这个dependencySet  -->
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>${base.dir}test</outputDirectory>
            <!--  scope为test的依赖包属于当前dependencySet  -->
            <scope>test</scope>
        </dependencySet>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>${base.dir}provided</outputDirectory>
            <scope>provided</scope>
        </dependencySet>
    </dependencySets>
</assembly>  

Assembly插件配置参数详细说明参见:
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

本文转载自:https://blog.csdn.net/a19881029/article/details/50898358

boonya
粉丝 79
博文 388
码字总数 77424
作品 0
海淀
高级程序员
私信 提问
加载中

评论(0)

maven-assembly-plugin插件的使用方法

一. Assembly 是什么意思? 二. maven-assembly-plugin是什么? 1 三. maven-assembly-plugin插件的作用?   摘自官网:http://maven.apache.org/plugins/maven-assembly-plugin/   英文...

吴伟祥
2018/10/11
802
0
maven打包相关插件总结(非web服务器运行环境)

maven打包相关插件总结(非web服务器运行环境) 有时候,我们需要把一个maven项目打包成一个jar,并且把依赖的lib都打包到一个lib目录下,利用 java -Dxxx(设置环境变量等) -classpath(类...

Beaver_
2015/11/23
1.8K
0
maven中把依赖的JAR包一起打包

maven中把依赖的JAR包一起打包 博客分类: maven 项目管理 敏捷开发 这里所用到的MAVEN-PLUGIN是MAVNE-ASSEMBLY-PLUGIN 官方网站是:http://maven.apache.org/plugins/maven-assembly-plugin/...

AnyLiem
2016/01/20
316
0
maven将依赖包一起打入jar包中

如果需要将依赖包打入jar包,需要添加maven-assembly-plugin插件,默认是没有这个插件的。使用命令mvn package,jar包就打进去了。这里所用到的MAVEN-PLUGIN是MAVNE-ASSEMBLY-PLUGIN,官方网...

cjun1990
2016/12/09
2.9K
0
DevOps进阶(九)使用assembly plugin实现自定义打包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunhuaqiang1/article/details/84821580 DevOps进阶(九)使用assembly plugin实现自定义打包 assembly plugi...

孙华强
2018/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何使div的浏览器窗口高度为100% - How to make a div 100% height of the browser window

问题: I have a layout with two columns - a left div and a right div . 我有两列的布局-左div和右div 。 The right div has a grey background-color , and I need it to expand vertic......

技术盛宴
今天
20
0
SSM框架整合

mybatis逆向工程 mybatis-generator生成pojo、mapper接口及映射文件 mapper放到e3-manager-dao层中 导入sql到数据库中; 导入逆向工程工具,配置xml文件 运行main方法 重复运行main不会覆盖!...

七宝1
今天
30
0
OSChina 周日乱弹 —— 和网友的第一次开房经历

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Ljósið》- Ólafur Arnalds 手机党少年们想听歌,请使劲儿戳(这里) @xiaos...

小小编辑
今天
50
0
程序员职业生涯指引

程序员应该尽早规划自己的职业生涯 为什么写 众所周知 IT 这一行到了一定的年龄、大部分人都或多或少有危机感,特别是今年全国乃至全球发生的疫情、导致整体经济受到很大的影响、这次的疫情影...

科比可比克
今天
11
0
JVM调优实战分析

一、查看服务器项目JVM参数以及参数分析 1、jps 命令 : 列出系统中所有的 Java 应用程序以及PID 如下图所示,26647就是我部署在服务器的一个小项目的 PID 2、jmap命令:查看堆的使用情况 如...

IT-Mamba
今天
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部