你是否想要创建一个包含脚本、配置文件以及所有运行时所依赖的元素(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 文件里面的配置说明
<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><!-- 将scope为runtime的依赖包打包到lib目录下。 -->
<useProjectArtifact>true</useProjectArtifact>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
分享到:
相关推荐
Maven Assembly 插件介绍** Maven Assembly插件的主要任务是创建项目的归档文件,它包含了项目本身以及其所有依赖。这使得用户可以下载一个完整的包并直接运行,无需额外安装依赖。该插件提供了自定义归档配置的...
本篇文章将深入探讨如何使用Maven Assembly插件来创建多个自定义包以及War包,这对于Java开发者来说尤其重要,因为它使得项目打包和分发变得更加方便。 Maven是一个强大的Java项目管理工具,它通过配置文件POM...
Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...
### Maven Assembly Plugin详解 #### 一、概述 Maven Assembly Plugin 是一个强大的工具,主要用于将项目的输出及其依赖项、模块、站点文档和其他相关文件合并到一个可分发的归档文件中。这对于创建最终可部署的包...
本文将详细介绍Maven中的常用插件及其功能。 1. Maven Assembly Plugin Maven Assembly 插件允许开发者将项目的输出,包括依赖、模块、网站文档和其他文档集成到一个单一的文档中,以便于定制打包。这个插件支持...
`maven-assembly-plugin`是Maven的一个插件,用于生成项目的归档文件,如tar.gz或zip,这在分发和部署软件时非常有用。本篇将详细介绍如何利用`maven-assembly-plugin`在Spring Boot项目中实现这个功能。 首先,`...
本文主要关注的是Maven的assembly插件以及Spring Boot项目的启动和停止脚本。 **Maven Assembly 插件** Maven Assembly 插件用于创建自定义的归档文件,如JAR、WAR或ZIP,包含项目的所有依赖、资源和配置文件。这...
例如,可以使用`maven-assembly-plugin`将所有依赖项打包成单一的可执行JAR,方便部署到生产环境。对于Zookeeper,可能还需要使用`maven-antrun-plugin`执行Ant任务,如创建配置文件或启动脚本。对于Kafka,`maven-...
Assembly插件是Maven或Gradle构建系统中的一个组件,它允许开发者通过XML配置文件(assembly.xml)来定义如何打包项目。这个插件提供了高度定制化的打包能力,包括文件的拷贝、重命名、过滤以及归档格式的选择等。它...
其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以定制依赖项等。本文将详细介绍 maven-assembly-plugin 的使用,包括其基本概念、配置方法和实践应用。 Maven 打包方式的...
"maven对storm打包" Maven是Java项目管理和构建工具,Storm是分布式实时计算系统。Maven可以对Storm项目进行打包,生成可执行的Jar...通过配置Maven插件和修改assembly插件的配置,我们可以根据需要生成不同的Jar包。
而`maven-assembly-plugin`是Maven的一个插件,用于创建自定义的打包(assembly)格式,比如tar、tar.gz、zip等。这个插件允许开发者在打包过程中包含额外的资源,如配置文件、文档等,使得最终的发布包更完整,便于...
本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven有多个生命周期阶段,如`clean`、`compile`、`test`、`package`等,每个...
其中,Maven Assembly插件是其中一个非常重要的插件,它可以帮助我们将Java工程打包成可执行的JAR文件。但是,在使用Maven Assembly插件时,我们需要注意一些问题,例如如何将依赖的JAR包包含在打包的JAR文件中,...
接下来,我们将介绍一些常用的 Maven 插件: 1. maven-antrun-plugin maven-antrun-plugin 能让用户在 Maven 项目中运行 Ant 任务。用户可以直接在该插件的配置以 Ant 的方式编写 Target,然后交给该插件的 run ...
这篇文档将深入探讨如何使用assembly插件进行项目打包,以及如何生成适用于Windows和Linux环境的启动脚本。 首先,`assembly`插件是Apache Maven的一个强大组件,它允许开发者定义一个详细的描述文件(通常是`...
在上一部分中,我们介绍了Maven的基本概念和使用,现在我们将深入探讨Maven插件的使用方法,以及它们如何增强Maven的功能。 **一、Maven插件的作用** Maven插件是实现特定构建任务的代码集合,如编译、测试、打包...
- **支持Maven插件**:M2E能够识别并配置Maven插件,如maven-surefire-plugin用于单元测试,maven-assembly-plugin用于打包等。 4. **M2E与features、plugins的关系** "features"和"plugins"这两个文件夹可能代表...
这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上...