1. 修改pom.xml
<build> <resources> <!--资源过滤*.properties到target/classes下--> <resource> <includes> <include>**/*.properties</include> <include>log4j.xml</include> </includes> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> <!--复制除 *.properties 到target/classes/下,不做资源过滤--> <resource> <excludes> <exclude>**/*.properties</exclude> </excludes> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> <!--复制除 *.properties 到target/classes/assembly-conf下,不做资源过滤--> <resource> <excludes> <exclude>**/*.properties</exclude> </excludes> <directory>src/main/resources</directory> <filtering>false</filtering> <targetPath>assembly-conf</targetPath> </resource> <!--资源过滤*.properties,log4j.xml到assembly-conf,最终由assembly插件复制到conf目录下--> <resource> <includes> <include>**/*.properties</include> <include>log4j.xml</include> </includes> <directory>src/main/resources</directory> <filtering>true</filtering> <targetPath>assembly-conf</targetPath> </resource> </resources> <plugins> <!--package时打出可执行的tar.gz--> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptor>src/main/assembly/assembly.xml</descriptor> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
2、src/main/assembly/assembly.xml
<assembly> <id>assembly</id> <formats> <format>dir</format><!-- 2012-8-23 update --> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <!--2012-8-23 modify true to false--> <fileSets> <fileSet> <directory>src/main/assembly/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0755</fileMode> </fileSet> <fileSet> <directory>target/classes/assembly-conf</directory> <outputDirectory>conf</outputDirectory> <fileMode>0644</fileMode> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> <useProjectArtifact>true</useProjectArtifact> <scope>runtime</scope> </dependencySet> </dependencySets> </assembly>
简单解释一下:
1) format
format=zip设置打包的最终文件格式为zip.
支持的其他格式还有gz,tar,tar.gz,tar.bz2。
2) fileset
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
将src/main/bin目录下的文件打包到根目录(/)下.
<fileSet>
<directory>src/main/config</directory>
<outputDirectory>config</outputDirectory>
</fileSet>
将src/main/config目录下的文件打包到config下.
3) dependencySets
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
将scope为runtime的依赖包打包到lib目录下。
详细的语法不介绍了,请参考官方指南,有非常详尽的说明:Assembly Descriptor Format reference
其他相关
<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>utf-8</encoding> </configuration> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-compiler-javac</artifactId> <version>1.8.1</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.2</version> <configuration> <encoding>utf-8</encoding> </configuration> </plugin> </plugins> </build>
相关推荐
总的来说,`maven-assembly-plugin`是Maven构建过程中的一个重要工具,它帮助开发者灵活地定制打包过程,适应不同环境的需求。结合Spring Boot项目,我们可以更高效地管理和部署应用程序,提高开发和运维的效率。
Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...
Maven3种打包方式中maven-assembly-plugin的使用详解 Maven 作为一个流行的项目管理工具,提供了多种方式来打包项目。其中,maven-assembly-plugin 是一个非常强大和灵活的插件,支持自定义的打包结构,并且可以...
本篇文章将详细探讨如何使用Maven的`maven-assembly-plugin`插件来打包Dubbo服务接口。 首先,我们要理解Maven的生命周期和构建过程。Maven有多个生命周期阶段,如`clean`、`compile`、`test`、`package`等,每个...
maven打包,指定入口类的jar包,具体的pom配置为:<plugin> <groupId>org.apache.maven.plugins <artifactId>maven-shade-plugin <version>3.1.0 <phase>package <goal>shade implementation=...
而`maven-assembly-plugin`是Maven的一个插件,用于创建自定义的打包(assembly)格式,比如tar、tar.gz、zip等。这个插件允许开发者在打包过程中包含额外的资源,如配置文件、文档等,使得最终的发布包更完整,便于...
接下来,使用maven-assembly-plugin打包项目,主要配置如下: ```xml <plugin> <groupId>org.apache.maven.plugins <artifactId>maven-assembly-plugin <version>2.4 <descriptor>src/main/resources/...
在Java开发领域,Maven是一个不可或缺的构建工具,它通过管理项目的依赖关系,简化了构建...对于`maven plugin打包下载`这个主题,理解其工作原理、生命周期和配置方式至关重要,这将直接影响到项目的构建和打包过程。
Maven Assembly Plugin 是一个非常有用的工具,它可以帮助开发者轻松地管理项目的打包过程,并确保最终产品的一致性和完整性。通过合理配置 Assembly 描述符和 FileSets,可以极大地提高项目的自动化程度,减少手动...
maven安装与配置 确保已安装JDK。Maven 3.9+版本需要JDK 8或更高版本。可以通过输入java -version来检查JDK是否安装以及其版本。 下载Maven。访问Maven官网下载最新版本,例如3.9.1。对于Windows用户,通常下载...
maven-assembly-plugin maven-jar-plugin spring-boot-maven-plugin maven-dependency-plugin maven-resources-plugin CHANGELOG 1.maven-assembly-plugin 配置assembly.xml文件路径 <plugin> <artifactId>maven-...
在Maven中实现这个功能,我们需要借助maven-assembly-plugin或者maven-war-plugin,但更常见的是使用maven-resources-plugin和maven-compiler-plugin配合yuicompressor-maven-plugin。以下是一个详细的步骤说明: 1...
4. **插件和目标**:Maven 拥有丰富的插件生态系统,每个插件可以执行特定的任务,如编译源代码、运行测试、打包等。 5. **继承和聚合**:Maven 支持项目继承和多模块项目聚合,方便大型项目的管理和构建。 6. **跨...
总结来说,这个"demo-maven-pkg.zip"是使用Maven的插件功能,可能结合`maven-assembly-plugin`或`maven-resources-plugin`,将一个Maven项目及其相关资源和依赖打包成ZIP格式的文件,便于分发和部署。具体的内容和...
例如,`maven-surefire-plugin` 用于运行单元测试,`maven-javadoc-plugin` 可生成API文档,而`maven-assembly-plugin` 或`maven-resources-plugin` 则帮助创建可分发的工件。 Apache Maven 3.3.9 版本相对于之前的...
1. **依赖打包到外部**:使用`maven-assembly-plugin`或`maven-shade-plugin`,我们可以将依赖打包到一个单独的lib目录下。比如,通过`maven-assembly-plugin`的`dependencySet`配置,我们可以指定哪些依赖应该被...
maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办? maven-shade-plugin 插件打第三方依赖包,spring 有 java....
例如,`maven-assembly-plugin`可以用来创建自定义的打包格式,`maven-javadoc-plugin`则用于生成项目文档。 至于"Readme-说明.htm"文件,通常包含有关如何安装、配置和使用Maven的详细信息。用户应仔细阅读该文件...
例如,maven-surefire-plugin用于执行单元测试,maven-javadoc-plugin生成API文档,maven-assembly-plugin则能打包成可分发的格式,如ZIP或JAR。 5. **聚合与继承**:Maven支持项目聚合,一个父POM可以包含多个子...
“框架-Maven-插件”通常会包含一些针对特定框架的构建、打包、部署等目标,例如Spring Boot的spring-boot-maven-plugin,它可以方便地对Spring Boot应用进行打包和运行。这类插件使得开发者无需深入理解框架内部的...