`

maven assembly plugin(打包插件)

阅读更多

使用场景

在使用maven来管理项目时,项目除了web项目,还有可能为控制台程序,一般用于开发一些后台服务的程序。最近在工作中也遇到了这种场景,使用quartz开发一个任务调度程序。程序中依赖很多jar包,项目的启动时只需要初始化spring容器即可。

使用方法

使用一个简单的基于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/

 

原文连接:http://blog.csdn.net/WANGYAN9110/article/details/38646677/

 
分享到:
评论

相关推荐

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

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

    maven资料Maven Assembly Plugin

    Maven Assembly Plugin 是一个非常有用的工具,它可以帮助开发者轻松地管理项目的打包过程,并确保最终产品的一致性和完整性。通过合理配置 Assembly 描述符和 FileSets,可以极大地提高项目的自动化程度,减少手动...

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

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

    maven plugin打包下载

    在Java开发领域,Maven是一个不可或缺的构建工具,它通过管理项目的依赖关系,简化了构建...对于`maven plugin打包下载`这个主题,理解其工作原理、生命周期和配置方式至关重要,这将直接影响到项目的构建和打包过程。

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

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

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

    maven-jar-plugin 是默认的打包插件,用来打普通的 project JAR 包;maven-shade-plugin 用来打可执行 JAR 包,也就是所谓的 fat JAR 包;maven-assembly-plugin 支持自定义的打包结构,也可以定制依赖项等。 maven-...

    assembly plugin打包

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

    maven assembly 插件 代码实现

    而Maven Assembly插件则是Maven生态系统中的一个重要组成部分,它允许开发者将项目的所有依赖、源代码、文档等打包成一个可执行的归档文件,如JAR、WAR或ZIP格式,便于分发和部署。 **1. Maven Assembly 插件介绍**...

    maven对storm打包

    * Maven Assembly Plugin:Maven Assembly Plugin是一个Maven插件,用于生成包含依赖项的Jar包。 四、生成包含依赖项的Jar包 使用Maven Assembly Plugin,我们可以生成包含依赖项的Jar包。 知识点: * Jar包生成...

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

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

    maven-assembly 自定义打包方式

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

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

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

    Maven常用插件整理.docx

    Maven Assembly 插件允许开发者将项目的输出,包括依赖、模块、网站文档和其他文档集成到一个单一的文档中,以便于定制打包。这个插件支持多种输出格式,如zip、tar、tar.gz、gar.bz2、jar、dir和war等。预定义的四...

    Maven 生成打包可执行jar包的方法步骤

    Maven提供了多种打包插件,如maven-jar-plugin(默认的JAR打包插件)、maven-shade-plugin(用于生成可执行的fat JAR)和maven-assembly-plugin(支持自定义打包)。在这个场景中,我们将使用maven-jar-plugin和...

    springboot+maven打包demo【将依赖与配置文件打包到jar包外部】

    这可以通过Maven的`maven-jar-plugin`和`maven-assembly-plugin`或`maven-shade-plugin`插件来实现。 1. **依赖打包到外部**:使用`maven-assembly-plugin`或`maven-shade-plugin`,我们可以将依赖打包到一个单独的...

    maven生成可执行exe文件

    首先,你需要在你的系统上安装`launch4j`,然后在`pom.xml`中配置`maven-assembly-plugin`或`maven-shade-plugin`来生成单一的jar文件,最后配置`exec-maven-plugin`来调用`launch4j`。 添加`maven-assembly-...

    maven 使用assembly 进行打包的方法

    在`&lt;build&gt;`标签内,我们需要配置两个插件,一个是`maven-compiler-plugin`用于编译源代码,另一个是`maven-assembly-plugin`用于打包。下面是配置示例: ```xml ${project.artifactId} &lt;sourceDirectory&gt;src/...

    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 的打包神器:深入解析 maven-assembly-plugin 的工作机制

    4. **插件和目标**:Maven 拥有丰富的插件生态系统,每个插件可以执行特定的任务,如编译源代码、运行测试、打包等。 5. **继承和聚合**:Maven 支持项目继承和多模块项目聚合,方便大型项目的管理和构建。 6. **跨...

    Maven将带有第三方依赖的可执行程序打包示例

    maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办? maven-shade-plugin 插件打第三方依赖包,spring 有 java....

Global site tag (gtag.js) - Google Analytics