`

maven assembly plugin使用

 
阅读更多

使用方法

使用一个简单的基于spring框架的demo来做程序示例,来介绍maven assembly插件的使用方法。
项目中的代码目录如下:

在以上代码目录中,assembly目录下为打包的描述文件,下面会详细介绍该文件,bin目录下为启动脚本以及readme等文件,main下为maven标准中建立的文件,java代码以及配置文件位于该目录下。
打包完成后压缩包目录如下:

打包完成后,我们可以看到bin目录来存放启动脚本等文件,config为配置文件,lib下为运行时依赖的jar包。
使用maven assembly插件需要在pom文件中配置,添加这个插件

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <executions>
                    <execution>
                        <id>make-zip</id>
                        <!-- 绑定到package生命周期阶段上 -->
                        <phase>package</phase>
                        <goals>
                            <!-- 绑定到package生命周期阶段上 -->
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <descriptors> <!--描述文件路径-->
                                <descriptor>src/assembly/assembly.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

其中execution节点,我们配置了执行maven assembly插件的一些配置,descriptor节点配置指向assembly.xml的路径。
在assembly.xml配置了,我们打包的目录以及相应的设置

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <id>distribution</id>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>${project.basedir}\src\main\resources</directory>
            <outputDirectory>\</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}\src\bin</directory>
            <outputDirectory>\bin</outputDirectory>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <!-- 将scope为runtime的依赖包打包到lib目录下。 -->
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets></assembly>

assembly.xml的配置项非常多,可以参考http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
以上只是用了很少的一部分。
format设置包输出的格式,以上格式设置的为zip格式,目前还支持zip,tar,tar.gz,tar.bz2,jar,dir,war格式
fileSet定义代码目录中与输出目录的映射,在该节点下还有 <includes/>,<excludes/>两个非常有用的节点。
比如:

        <fileSet>
            <directory>${project.basedir}\src\main\resources</directory>
            <outputDirectory>\</outputDirectory>
            <includes>
                <include>some/path</include>
            </includes>
            <excludes>
                <exclude>some/path1</exclude>
            </excludes>
        </fileSet>

以上代码表示归档时包括some/path,不包括some/path1
dependencySets节点下为依赖设置
在上述配置中,表示所有运行时依赖的jar包归档到lib目录下。在上述截图中lib目录下的文件就是所有依赖的jar包

更多节点的用法可以去官网查询
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

下面的文章会介绍打包后的包如何做成windows服务,linux服务。

参考资料

http://maven.apache.org/plugins/maven-assembly-plugin/

分享到:
评论

相关推荐

    maven资料Maven Assembly Plugin

    下面是一个具体的配置示例,用于说明如何使用 Maven Assembly Plugin: ```xml &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-assembly-plugin &lt;version&gt;2.6 &lt;mainClass&gt;...

    Maven build插件之Maven-assembly-plugin自定义打包

    Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...

    maven-assembly-plugin-2.2-beta-5.jar

    maven-assembly-plugin-2.2-beta-5.jar

    SpringBoot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

    `maven-assembly-plugin`是Maven的一个插件,用于生成项目的归档文件,如tar.gz或zip,这在分发和部署软件时非常有用。本篇将详细介绍如何利用`maven-assembly-plugin`在Spring Boot项目中实现这个功能。 首先,`...

    使用Maven assembly打多个自定义包及War包简介

    本篇文章将深入探讨如何使用Maven Assembly插件来创建多个自定义包以及War包,这对于Java开发者来说尤其重要,因为它使得项目打包和分发变得更加方便。 Maven是一个强大的Java项目管理工具,它通过配置文件POM...

    maven-assembly-plugin-3.1.0.jar

    java运行依赖jar包

    maven-assembly-plugin-3.1.1.jar

    java运行依赖jar包

    Maven3种打包方式中maven-assembly-plugin的使用详解

    Maven3种打包方式中maven-assembly-plugin的使用详解 Maven 作为一个流行的项目管理工具,提供了多种方式来打包项目。其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以...

    maven assembly 插件 代码实现

    Maven Assembly插件不仅可以使用预定义的`descriptorRefs`,还可以通过自定义assembly.xml文件来详细控制打包过程。例如,你可以决定哪些文件和目录包含在归档中,文件的相对路径,甚至可以指定文件的权限等。以下是...

    maven plugin打包下载

    1. **打包**:在项目开发完成后,开发者可以使用`maven-assembly-plugin`或`maven-shade-plugin`进行打包。`assembly-plugin`用于创建自定义的归档文件,如包含所有依赖的ZIP或JAR。`shade-plugin`则可以合并多个JAR...

    maven打包dubbo服务接口(maven-assembly-plugin)

    本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven有多个生命周期阶段,如`clean`、`compile`、`test`、`package`等,每个...

    maven jar包

    maven-assembly-plugin-2.2-beta-5.jar maven-bundle-plugin-1.0.0.jar maven-clean-plugin-2.4.1.jar maven-clean-plugin-2.5.jar maven-common-artifact-filters-1.3.jar maven-compat-3.2.1-sources.jar maven-...

    maven-assembly-plugin-example:使用maven-assembly-plugin

    Maven的组装插件的例子 该项目包含maven-assembly-plugin用法的示例阅读 yeoman generator(java)生成的项目

    assembly plugin打包

    标题中的“assembly plugin打包”指的是在软件开发过程中,使用Maven Assembly Plugin进行项目打包的步骤和相关知识。Maven是Java领域广泛使用的构建工具,它通过配置管理项目的依赖关系,自动化构建过程。Assembly ...

    maven-assembly-plugin-2.5.3.jar

    java运行依赖jar包

    maven-assembly-plugin-2.2.1.jar

    java运行依赖jar包

    maven-shade-plugin-3.1.0.jar

    maven打包,指定入口类的jar包,具体的pom配置为:&lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins &lt;artifactId&gt;maven-shade-plugin &lt;version&gt;3.1.0 &lt;phase&gt;package &lt;goal&gt;shade implementation=...

    maven打包使用yui压缩css和js文件

    在Maven中实现这个功能,我们需要借助maven-assembly-plugin或者maven-war-plugin,但更常见的是使用maven-resources-plugin和maven-compiler-plugin配合yuicompressor-maven-plugin。以下是一个详细的步骤说明: 1...

    maven对storm打包

    在本例中,我们使用Maven Assembly Plugin来生成包含依赖项的Jar包。 知识点: * Maven插件:Maven插件是Maven的扩展机制,用于提供特定的功能和功能。 * Maven Assembly Plugin:Maven Assembly Plugin是一个...

    maven-assembly 自定义打包方式

    而`maven-assembly-plugin`是Maven的一个插件,用于创建自定义的打包(assembly)格式,比如tar、tar.gz、zip等。这个插件允许开发者在打包过程中包含额外的资源,如配置文件、文档等,使得最终的发布包更完整,便于...

Global site tag (gtag.js) - Google Analytics