`

Maven Assembly打包插件介绍

阅读更多

你是否想要创建一个包含脚本、配置文件以及所有运行时所依赖的元素(jar)Assembly插件能帮你构建一个完整的发布包。

 

Assembly插件会生成 “assemblies”, 此特性等同于的Maven 1 distribution plug-in.。该插件不仅支持创建二进制归档文件,也支持创建源码归档文件。这些assemblies定义在一个assembly描述符文件里。你可以选择自定义assembly描述符或者直接使用插件自带的三个预定义描述符中的任何一个.

目前Assembly插件支持如下格式的归档文件:

  • zip
  • tar.gz
  • tar.bz2
  • jar
  • dir
  • war
  • and any other format that the ArchiveManager has been configured for

Maven 2上使用assembly的简单步骤:

  • 从预定义描述符里选择一个或者自己编写一个assembly描述符号。
  • 工程的pom.xml里配置Assembly插件。
  • 在工程根目录下运行”mvn assembly:assembly”命令 。

如何自定义assembly描述符,详见Assembly Descriptor Format.

什么是Assembly?

“assembly”是把一组文件、目录、依赖元素组装成一个归档文件. 比如, 假设一个 Maven project定义了一个JAR artifact,它包含控制台应用程序和Swing应用程序 。这样一个工程可以定义两套包含描述符,一套给给控制台应用,另一套给Swing应用程序,它们包含各自的脚本、目录和依赖。

Assembly Plugin的描述符可以定义任何一个文件或者目录归档方式。举个例子,如果的你的Maven 2工程包含”src/main/bin”这个目录,你可以指示Assembly插件复制“src/main/bin”目录下所有的文件到bin目录里(归档文件里的目录),并且可以修改它们的权限属性(UNIX mode)。见 assembly descriptor.

The Maven Assembly Plugin

Maven 2.0的Assembly插件目的是提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。

使用任何一个预定义的描述符你可以轻松的构建一个发布包。这些描述符能处理一些常用的操作,如:把依赖的元素的归档到一个jar文件. 当然, 你可以自定义描述符来更灵活的控制依赖,模块,文件的归档方式。

 

 

maven-assembly-plugin : 是maven中针对打包任务而提供的标准插件

(1)、在pom.xml 文件里面的配置说明

 

Java代码  收藏代码
  1. <plugin>  
  2.     <artifactId>maven-assembly-plugin</artifactId>  
  3.     <executions>  <!--执行器 mvn assembly:assembly-->  
  4.         <execution>  
  5.             <id>make-zip</id><!--名字任意 -->    
  6.         <phase>package</phase><!-- 绑定到package生命周期阶段上 -->    
  7.         <goals>    
  8.            <goal>single</goal><!-- 只运行一次 -->    
  9.         </goals>    
  10.             <configuration>  
  11.                      <descriptors> <!--描述文件路径-->  
  12.                           <descriptor>src/main/resources/zip.xml</descriptor>  
  13.                     </descriptors>  
  14.             </configuration>  
  15.         </execution>  
  16.     </executions>  
  17.  </plugin>  
 

(2)、zip.xml 文件配置如下

 

Xml代码  收藏代码
  1. <assembly  
  2.     xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">  
  5.     <id>release</id>  
  6.     <formats>  
  7.         <format>zip</format>  
  8.     </formats>  
  9.     <fileSets>  
  10.         <fileSet>  
  11.             <directory>${project.basedir}\src\main\config</directory>  
  12.             <!-- 过滤 -->  
  13.             <excludes>  
  14.                 <exclude>*.xml</exclude>  
  15.             </excludes>  
  16.             <outputDirectory>\</outputDirectory>  
  17.         </fileSet>  
  18.     </fileSets>  
  19.       
  20.     <dependencySets>  
  21.         <dependencySet>  
  22.             <useProjectArtifact>true</useProjectArtifact>  
  23.             <outputDirectory>lib</outputDirectory><!-- 将scope为runtime的依赖包打包到lib目录下。 -->  
  24.             <scope>runtime</scope>  
  25.         </dependencySet>  
  26.     </dependencySets>  
  27. </assembly>  

 (3)、zip.xml 格式属性说明

 

打包的文件格式
可以有:tar.zip war zip
<formats>
 <format>zip</format>
</formats>

 

需要打包的路径
<directory>${project.basedir}</directory>

 

打包后输出的路径
<outputDirectory>/</outputDirectory>

 

打包需要包含的文件

 <excludes>
        <exclude>junit:junit</exclude>
        <exclude>commons-lang:commons-lang</exclude>
        <exclude>commons-logging:commons-logging</exclude>
</excludes>

 

当前项目构件是否包含在这个依赖集合里。

<useProjectArtifact>true</useProjectArtifact>

 

依赖包打包到目录下
<dependencySets>
  <dependencySet>
   <outputDirectory>lib</outputDirectory><!-- 将scope为runtime的依赖包打包到lib目录下。 -->
   <useProjectArtifact>true</useProjectArtifact>
   <scope>runtime</scope>
  </dependencySet>
</dependencySets>

推荐教程:http://blueram.iteye.com/blog/1684070

分享到:
评论

相关推荐

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

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

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

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

    maven assembly 插件 代码实现

    Maven Assembly 插件介绍** Maven Assembly插件的主要任务是创建项目的归档文件,它包含了项目本身以及其所有依赖。这使得用户可以下载一个完整的包并直接运行,无需额外安装依赖。该插件提供了自定义归档配置的...

    assembly项目打包插件,包含windows与linux环境下的启动脚本

    `assembly`项目打包插件就是这样一个工具,它主要用于Java项目,尤其是基于Maven和Spring Boot的项目。这篇文档将深入探讨如何使用assembly插件进行项目打包,以及如何生成适用于Windows和Linux环境的启动脚本。 ...

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

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

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

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

    maven-assembly 自定义打包方式

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

    maven资料Maven Assembly Plugin

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

    maven对storm打包

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

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

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

    Maven打包实战.zip

    总结来说,Maven打包实战涵盖了从基本的`pom.xml`配置,到Eclipse中使用Maven插件进行打包,再到处理复杂的打包需求,如生成可执行JAR。通过这个实战教程,你将能够掌握Maven的核心打包技巧,提升项目构建和管理的...

    maven生成可执行exe文件

    下面将详细介绍如何使用Maven和第三方插件将Java程序转换为可执行的exe文件。 1. **Maven配置** Maven项目通常由`pom.xml`文件进行配置。在该文件中,我们需要添加用于创建可执行文件的插件。一个常用的插件是`...

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

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

    maven plugin打包下载

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

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

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

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

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

    揭秘 Maven 的打包神器:深入解析 maven-assembly-plugin 的工作机制

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

    maven插件assembly使用及springboot启动脚本start.sh和停止脚本 stop.sh

    总结来说,Maven Assembly 插件提供了一种灵活的方式来打包整个项目,包括依赖、资源和启动脚本,而Spring Boot的启动和停止脚本则简化了应用的生命周期管理。理解并正确使用这些工具,对于提升开发效率和部署流程的...

    [maven] 常用插件解析.docx

    接下来,我们将介绍一些常用的 Maven 插件: 1. maven-antrun-plugin maven-antrun-plugin 能让用户在 Maven 项目中运行 Ant 任务。用户可以直接在该插件的配置以 Ant 的方式编写 Target,然后交给该插件的 run ...

    Maven常用插件整理.docx

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

Global site tag (gtag.js) - Google Analytics