maven-assembly-plugin使用的心得

普通的maven打包是打包成jar或者war包。如果想打包成zip、tar.gz等格式的时候,就要使用maven-assembly这个插件了。最初认识这个插件的时候,觉得它和resource插件差不多。确实有相似的地方,resource控制的是项目生成到target目录的情况。而assembly这个插件可以控制各阶段怎么打包,可以在maven生成target之后,控制把什么东西打包进assembly最终生成的包中,甚至可以把target中生成的jar也打包进去。废话不多说了,首先看怎么用:
1、首先把标签内添加assembly插件:


 ……
 
  ……
  
   org.apache.maven.plugins
   maven-assembly-plugin
   2.4
   
    UTF-8
    
     src/main/assembly/package.xml
    
    c:\\
   
   
    
     make-assembly
     package
     
      single
     
    
   
  
 

这是我项目中的一个例子。标签里的文件后面详细讲讲,主要是配置assembly打包相关目录、文件、依赖包等等的路径及对应输出的问题。标签表示打包生成的文件输出路径。我把它放在c盘主要是为了方便点,各位可以按需放置。标签中的名字可以随便起,但是后面的文件里的要和这里的id对应。

2、配置对应的文件:



 make-assembly
 
  zip
 
 true
 
  
   ${project.build.directory}/classes
   /class 
  
  
   src/main/resources
   /conf
  
  
   src/webapp
   src/webapp
  
  
            bin
            /bin
        
 
 
  
   lib
   runtime
  
 


这里的就是和前面里的对应的。这个表示最终打包文件最外层是否要加一个包装的目录,读者可以试试改成false就体会到区别了。就是要把什么文件打包到什么目录下,例如我这里就把target中的classes全部打包到最终的/class目录下,把resources目录里的打包进conf里面。则会把相关的依赖包进行打包。

这篇文章只是举一个简单的速成例子。maven-assembly还有很多细节的控制,例如可以有多个xml配置,也可以不配置xml直接使用简单几种配置方式,还可以控制打包哪些文件,排除哪些文件等等,这些请读者自行百度,我就没必要再搬运过来了。

你可能感兴趣的:(maven)