`
blueram
  • 浏览: 762405 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Maven Assembly插件介绍

 
阅读更多

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

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.0Assembly插件目的是提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。

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

 

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

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

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
	<executions>  <!--执行器 mvn assembly:assembly-->
		<execution>
			<id>make-zip</id><!--名字任意 -->  
		<phase>package</phase><!-- 绑定到package生命周期阶段上 -->  
		<goals>  
		   <goal>single</goal><!-- 只运行一次 -->  
		</goals>  
			<configuration>
					 <descriptors> <!--描述文件路径-->
						  <descriptor>src/main/resources/zip.xml</descriptor>
					</descriptors>
			</configuration>
		</execution>
	</executions>
 </plugin>
 

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

<assembly
	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
	<id>release</id>
	<formats>
		<format>zip</format>
	</formats>
	<fileSets>
		<fileSet>
			<directory>${project.basedir}\src\main\config</directory>
			<!-- 过滤 -->
			<excludes>
				<exclude>*.xml</exclude>
			</excludes>
			<outputDirectory>\</outputDirectory>
		</fileSet>
	</fileSets>
	
	<dependencySets>
		<dependencySet>
			<useProjectArtifact>true</useProjectArtifact>
			<outputDirectory>lib</outputDirectory><!-- 将scope为runtime的依赖包打包到lib目录下。 -->
			<scope>runtime</scope>
		</dependencySet>
	</dependencySets>
</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><!--
scoperuntime的依赖包打包到lib目录下。 -->
   <useProjectArtifact>true</useProjectArtifact>
   <scope>runtime</scope>
  </dependencySet>
</dependencySets>

分享到:
评论
1 楼 erpaoshouling 2016-07-14  
赞,多谢作者整理

相关推荐

    maven assembly 插件 代码实现

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

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

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

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

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

    maven资料Maven Assembly Plugin

    ### Maven Assembly Plugin详解 #### 一、概述 Maven Assembly Plugin 是一个强大的工具,主要用于将项目的输出及其依赖项、模块、站点文档和其他相关文件合并到一个可分发的归档文件中。这对于创建最终可部署的包...

    Maven常用插件整理.docx

    本文将详细介绍Maven中的常用插件及其功能。 1. Maven Assembly Plugin Maven Assembly 插件允许开发者将项目的输出,包括依赖、模块、网站文档和其他文档集成到一个单一的文档中,以便于定制打包。这个插件支持...

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

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

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

    本文主要关注的是Maven的assembly插件以及Spring Boot项目的启动和停止脚本。 **Maven Assembly 插件** Maven Assembly 插件用于创建自定义的归档文件,如JAR、WAR或ZIP,包含项目的所有依赖、资源和配置文件。这...

    maven插件压缩包

    例如,可以使用`maven-assembly-plugin`将所有依赖项打包成单一的可执行JAR,方便部署到生产环境。对于Zookeeper,可能还需要使用`maven-antrun-plugin`执行Ant任务,如创建配置文件或启动脚本。对于Kafka,`maven-...

    Assembly插件

    Assembly插件是Maven或Gradle构建系统中的一个组件,它允许开发者通过XML配置文件(assembly.xml)来定义如何打包项目。这个插件提供了高度定制化的打包能力,包括文件的拷贝、重命名、过滤以及归档格式的选择等。它...

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

    其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以定制依赖项等。本文将详细介绍 maven-assembly-plugin 的使用,包括其基本概念、配置方法和实践应用。 Maven 打包方式的...

    maven对storm打包

    "maven对storm打包" Maven是Java项目管理和构建工具,Storm是分布式实时计算系统。Maven可以对Storm项目进行打包,生成可执行的Jar...通过配置Maven插件和修改assembly插件的配置,我们可以根据需要生成不同的Jar包。

    maven-assembly 自定义打包方式

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

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

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

    使用maven插件对java工程进行打包过程解析

    其中,Maven Assembly插件是其中一个非常重要的插件,它可以帮助我们将Java工程打包成可执行的JAR文件。但是,在使用Maven Assembly插件时,我们需要注意一些问题,例如如何将依赖的JAR包包含在打包的JAR文件中,...

    [maven] 常用插件解析.docx

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

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

    这篇文档将深入探讨如何使用assembly插件进行项目打包,以及如何生成适用于Windows和Linux环境的启动脚本。 首先,`assembly`插件是Apache Maven的一个强大组件,它允许开发者定义一个详细的描述文件(通常是`...

    maven插件及其使用方法(2)

    在上一部分中,我们介绍了Maven的基本概念和使用,现在我们将深入探讨Maven插件的使用方法,以及它们如何增强Maven的功能。 **一、Maven插件的作用** Maven插件是实现特定构建任务的代码集合,如编译、测试、打包...

    Eclipse的Maven插件

    - **支持Maven插件**:M2E能够识别并配置Maven插件,如maven-surefire-plugin用于单元测试,maven-assembly-plugin用于打包等。 4. **M2E与features、plugins的关系** "features"和"plugins"这两个文件夹可能代表...

    maven-assembly-plugin:Apache Maven组件插件

    这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上...

Global site tag (gtag.js) - Google Analytics