maven - 使用assembly plugin实现自定义打包

    xiaoxiao2021-03-25  114

    assembly plugin的使用方式比较简单,主要有: 1. 修改pom.xml     pom.xml中设置如下:      < build >          < plugins >              < plugin >                  < artifactId >maven-assembly-plugin </ artifactId >                  < configuration >                      <!--  not append assembly id in release file name  -->                      < appendAssemblyId >false </ appendAssemblyId >                      < descriptors >                          < descriptor >src/main/assemble/package.xml </ descriptor >                      </ descriptors >                  </ configuration >                  < executions >                      < execution >                          < id >make-assembly </ id >                          < phase >package </ phase >                          < goals >                              < goal >single </ goal >                          </ goals >                      </ execution >                  </ executions >              </ plugin >          </ plugins >      </ build >     其中<artifactId>maven-assembly-plugin</artifactId>的maven-assembly-plugin是这个插件的标准命名,在maven2.0.*中带的默认版本是     appendAssemblyId属性控制是否在生成的打包文件的文件名中包含assembly id。          descriptor属性指定maven-assembly-plugin的配置文件,当然我设置的是src/main/assemble/package.xml.容许使用多个,功能强大当然用法也复杂,对于简单情况一个足矣。     execution的设置是为了将maven-assembly-plugin继承到标准的maven打包过程中,这样在运行maven-package时就会执行maven-assembly-plugin的操作,从而实现我们需要的自定义打包。 2. assemble descriptor file     我的src/main/assemble/package.xml内容如下: < assembly  xmlns ="http://maven.apache.org/POM/4.0.0"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd" >      < id >package </ id >      < formats >          < format >zip </ format >      </ formats >      < includeBaseDirectory >true </ includeBaseDirectory >      < fileSets >          < fileSet >              < directory >src/main/bin </ directory >              < outputDirectory >/ </ outputDirectory >          </ fileSet >          < fileSet >              < directory >src/main/config </ directory >              < outputDirectory >config </ outputDirectory >          </ fileSet >      </ fileSets >      < dependencySets >          < dependencySet >              < outputDirectory >lib </ outputDirectory >              < scope >runtime </ scope >          </ dependencySet >      </ dependencySets > </ assembly >          详细的语法不介绍了,请参考官方指南,有非常详尽的说明: Assembly Descriptor Format reference     简单解释一下:     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目录下。     总结一下,pom.xml中引入maven-assembly-plugin,然后assemble descriptor file按需设置,最后在eclipse中执行Run As -> Maven package,在target目录下就会出现***.zip文件,里面的格式和要求的完全一致。 
    转载请注明原文地址: https://ju.6miu.com/read-20063.html

    最新回复(0)