maven的assemble的使用

阅读更多

在开发Maven项目中,我们可能有各种各样的打包需求,当然最简单的就是,把整个Application打包成一个jar,这是Spring-boot项目中,常见的打包项目,有些项目可能比较复杂,还需要打包一些外部的配置的文件,或者自定义的shell脚本或者bat命令等,这时候使用assemble命令就比较方便了。

项目结构目录如下:


maven的assemble的使用_第1张图片


除了标准的创建maven项目会自带
src/main/java
src/main/resource
src/test/java
外,我们还自定义了bin,conf,assemble目录,其中bin目录用来存放项目启动,停止的一些脚本,conf存放了一些
外部配置文件,外部文件比较灵活,比如参数改了,不需要重新编译,只需要重启这个项目即可,assemble存放了我们打包的描述文件package.xml,内容如下:

Xml代码 复制代码  收藏代码
  1. xml version="1.0"?>  
  2. <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"  
  3.           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.           xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">  
  5.   
  6.       
  7.     <id>id>  
  8.       
  9.     <formats>  
  10.         <format>zipformat>  
  11.     formats>  
  12.       
  13.     <includeBaseDirectory>trueincludeBaseDirectory>  
  14.   
  15.     <fileSets>  
  16.   
  17.           
  18.               
  19.               
  20.               
  21.                   
  22.               
  23.               
  24.                   
  25.               
  26.           
  27.   
  28.           
  29.         <fileSet>  
  30.               
  31.             <directory>${project.basedir}\src\main\bindirectory>  
  32.             <outputDirectory>\binoutputDirectory>  
  33.             <includes>  
  34.                 <include>*.*include>  
  35.             includes>  
  36.               
  37.             <fileMode>0755fileMode>  
  38.         fileSet>  
  39.   
  40.         <fileSet>  
  41.               
  42.             <directory>${project.basedir}\src\main\configdirectory>  
  43.             <outputDirectory>\configoutputDirectory>  
  44.             <includes>  
  45.                 <include>*.*include>  
  46.             includes>  
  47.             <fileMode>0644fileMode>  
  48.         fileSet>  
  49.     fileSets>  
  50.   
  51.     <dependencySets>  
  52.   
  53.         <dependencySet>  
  54.             <useProjectArtifact>trueuseProjectArtifact>  
  55.             <outputDirectory>liboutputDirectory>  
  56.               
  57.             <scope>runtimescope>  
  58.         dependencySet>  
  59.     dependencySets>  
  60.   
  61.  assembly>  



    
    
    
    
        zip
    
    
    true

    

        
            
            
            
                
            
            
                
            
        

        
        
            
            ${project.basedir}\src\main\bin
            \bin
            
                *.*
            
            
            0755
        

        
            
            ${project.basedir}\src\main\config
            \config
            
                *.*
            
            0644
        
    

    

        
            true
            lib
            
            runtime
        
    

 



然后在主pom.xml中,加入如下一段内容:


Xml代码 复制代码  收藏代码
  1. <build>  
  2.       <plugins>  
  3.   
  4.           <plugin>  
  5.               <groupId>org.apache.maven.pluginsgroupId>  
  6.               <artifactId>maven-assembly-pluginartifactId>  
  7.               <configuration>  
  8.                     
  9.                   <descriptors>   
  10.                       <descriptor>src/main/assemble/package.xmldescriptor>  
  11.                   descriptors>  
  12.               configuration>  
  13.               <executions>  
  14.                   <execution>  
  15.                       <id>make-zipid>  
  16.                         
  17.                       <phase>packagephase>  
  18.                       <goals>  
  19.                             
  20.                           <goal>singlegoal>  
  21.                       goals>  
  22.   
  23.                   execution>  
  24.               executions>  
  25.           plugin>  
  26.   
  27.       plugins>  
  28.   
  29.   build>  
  
        

            
                org.apache.maven.plugins
                maven-assembly-plugin
                
                    
                     
                        src/main/assemble/package.xml
                    
                
                
                    
                        make-zip
                        
                        package
                        
                            
                            single
                        

                    
                
            

        

    




至此,我们在执行mvn clean package 时,就会发现target目录下,多了一个zip的压缩包:





将zip包解压后,如下:



maven的assemble的使用_第2张图片



我们就可以直接将压缩包,传到linux上执行脚本启动了,需要注意的是,在windows下编辑的脚本文件,在linux上可能执行不成功,大家可以下载一个dos2unix的工具,对脚本格式重新修改即可。

参考资料:
http://www.cnblogs.com/JerryWang1991/p/3936378.html
http://skydream.iteye.com/blog/437937
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

你可能感兴趣的:(maven)