使用方法
使用一个简单的基于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服务。
相关推荐
下面是一个具体的配置示例,用于说明如何使用 Maven Assembly Plugin: ```xml <plugin> <groupId>org.apache.maven.plugins <artifactId>maven-assembly-plugin <version>2.6 <mainClass>...
Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...
maven-assembly-plugin-2.2-beta-5.jar
`maven-assembly-plugin`是Maven的一个插件,用于生成项目的归档文件,如tar.gz或zip,这在分发和部署软件时非常有用。本篇将详细介绍如何利用`maven-assembly-plugin`在Spring Boot项目中实现这个功能。 首先,`...
本篇文章将深入探讨如何使用Maven Assembly插件来创建多个自定义包以及War包,这对于Java开发者来说尤其重要,因为它使得项目打包和分发变得更加方便。 Maven是一个强大的Java项目管理工具,它通过配置文件POM...
java运行依赖jar包
java运行依赖jar包
Maven3种打包方式中maven-assembly-plugin的使用详解 Maven 作为一个流行的项目管理工具,提供了多种方式来打包项目。其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以...
Maven Assembly插件不仅可以使用预定义的`descriptorRefs`,还可以通过自定义assembly.xml文件来详细控制打包过程。例如,你可以决定哪些文件和目录包含在归档中,文件的相对路径,甚至可以指定文件的权限等。以下是...
1. **打包**:在项目开发完成后,开发者可以使用`maven-assembly-plugin`或`maven-shade-plugin`进行打包。`assembly-plugin`用于创建自定义的归档文件,如包含所有依赖的ZIP或JAR。`shade-plugin`则可以合并多个JAR...
本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven有多个生命周期阶段,如`clean`、`compile`、`test`、`package`等,每个...
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的组装插件的例子 该项目包含maven-assembly-plugin用法的示例阅读 yeoman generator(java)生成的项目
标题中的“assembly plugin打包”指的是在软件开发过程中,使用Maven Assembly Plugin进行项目打包的步骤和相关知识。Maven是Java领域广泛使用的构建工具,它通过配置管理项目的依赖关系,自动化构建过程。Assembly ...
java运行依赖jar包
java运行依赖jar包
maven打包,指定入口类的jar包,具体的pom配置为:<plugin> <groupId>org.apache.maven.plugins <artifactId>maven-shade-plugin <version>3.1.0 <phase>package <goal>shade implementation=...
在Maven中实现这个功能,我们需要借助maven-assembly-plugin或者maven-war-plugin,但更常见的是使用maven-resources-plugin和maven-compiler-plugin配合yuicompressor-maven-plugin。以下是一个详细的步骤说明: 1...
在本例中,我们使用Maven Assembly Plugin来生成包含依赖项的Jar包。 知识点: * Maven插件:Maven插件是Maven的扩展机制,用于提供特定的功能和功能。 * Maven Assembly Plugin:Maven Assembly Plugin是一个...
而`maven-assembly-plugin`是Maven的一个插件,用于创建自定义的打包(assembly)格式,比如tar、tar.gz、zip等。这个插件允许开发者在打包过程中包含额外的资源,如配置文件、文档等,使得最终的发布包更完整,便于...