使用maven插件构建项目安装包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/majian_1987/article/details/50971292
 因项目需要,需要在一开源项目上做二 次开发,对开发后的项目需要再构建出自己的安装包(如Linux下的*.tar.gz,Windows下的*.zip格式)。从网上搜索资料发现maven插件可以实现这个需求。现把已经验证成功的maven的插件配置pom文件分享。以备有共同需要的人可以参考,同时给自己做个备忘:

pom.xml内容如下:

?
< project  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/maven-4.0.0.xsd" >
   < modelVersion >4.0.0</ modelVersion >
   < groupId >xxxx</ groupId >
   < artifactId >xxxxx</ artifactId >
   < version >3.4.6</ version >
   < name >xxxx</ name >
   < description >xxxxx</ description >
   
   < properties >
     < target.dir >target</ target.dir >
   </ properties >
 
   < dependencies >
     < dependency >
       ....
     </ dependency >
   </ dependencies >
 
   < build >
     < plugins >
       <!-- 指定多个源代码目录、多个资源文件目录 -->
       < plugin >
         < groupId >org.codehaus.mojo</ groupId >
         < artifactId >build-helper-maven-plugin</ artifactId >
         < version >1.8</ version >
         < executions >
           < execution >
             < id >add-source</ id >
             < phase >generate-sources</ phase >
             < goals >
               < goal >add-source</ goal >
             </ goals >
             < configuration >
               < sources >
                 < source >src/java/main</ source >
                 < source >src/java/generated</ source >
               </ sources >
             </ configuration >
           </ execution >
         </ executions >
       </ plugin >
       <!-- 编译插件 -->
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-compiler-plugin</ artifactId >
         < version >3.0</ version >
         < configuration >
           < source >1.6</ source >
           < target >1.6</ target >
            < encoding >UTF8</ encoding
         </ configuration >
       </ plugin >
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-resources-plugin</ artifactId >
         < version >2.6</ version >
         < configuration >
           < encoding >UTF-8</ encoding >
         </ configuration >
       </ plugin >
       <!-- 生成源文件jar包文件 -->
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-source-plugin</ artifactId >
         < version >2.1.1</ version >
         < executions >
           < execution >
             < id >attach-sources</ id >
             < goals >
               < goal >jar-no-fork</ goal >
             </ goals >
           </ execution >
         </ executions >
       </ plugin >
       <!-- 打字节码包插件 -->
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-jar-plugin</ artifactId >
         < version >2.4</ version >
         < configuration >
           < includes >
             < classesDirectory >org/</ classesDirectory >
           </ includes >
           < executions >
             < execution >
               < id >make-a-jar</ id >
               < phase >compile</ phase >
               < goals >
                 < goal >jar</ goal >
               </ goals >
             </ execution >
           </ executions >
         </ configuration >
       </ plugin >
       <!-- 部署插件 -->
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-assembly-plugin</ artifactId >
         < version >2.4</ version >
         < configuration >
           < descriptors >
             < descriptor >assembly.xml</ descriptor >
           </ descriptors >
         </ configuration >
         < executions >
           < execution >
             < id >make-assembly</ id >
             < phase >package</ phase >
             < goals >
               < goal >single</ goal >
             </ goals >
           </ execution >
         </ executions >
       </ plugin >
     </ plugins >
   </ build >
</ project >

其中,assembly.xml是部署插件maven-assembly-plugin的配置文件,在assembly.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-2.2.xsd" >
   < id >full</ id >
   < formats >
     < format >tar.gz</ format <!--Linux系统下打包文件格式 -->
     < format >zip</ format <!--Windows系统下打包文件格式 -->
   </ formats >
   < includeBaseDirectory >true</ includeBaseDirectory >
   < dependencySets >
     < dependencySet >
       < outputDirectory >lib</ outputDirectory > <!-- 将scope为runtime的依赖包打包到lib目录下。 -->
       < scope >runtime</ scope >
       < useProjectArtifact >false</ useProjectArtifact >
     </ dependencySet >
   </ dependencySets >
   < fileSets >
     < fileSet >
       < outputDirectory >/</ outputDirectory >
       < directory >/</ directory >
       < includes >
         < include >bin/*</ include >
         < include >conf/*</ include >
         < include >*.xml</ include >
         < include >*.txt</ include >
       </ includes >
       < excludes >
         < exclude >pom.xml</ exclude >
         < exclude >build.xml</ exclude >
         < exclude >build_bak.xml</ exclude >
         < exclude >assembly.xml</ exclude >
       </ excludes >
     </ fileSet >
      < fileSet >  
             < directory >/target/</ directory >  
             < outputDirectory >/</ outputDirectory >  
             < includes >
               < include >*.jar</ include >
             </ includes >
         </ fileSet
   </ fileSets >
</ assembly >


猜你喜欢

转载自blog.csdn.net/majian_1987/article/details/50971292