zoukankan      html  css  js  c++  java
  • 利用MAVEN打包可运行jar包,包括依赖的第三方包

    转载自:http://bglmmz.iteye.com/blog/2058914


    背景:

    另一篇文章说了如何利用IDEA来打包,现在来说说如何利用MAVEN打包

     

    目标应用本身打成一个jar包,依赖的第三方包放到lib目录下

     

    开发环境

    OS: Windows 8.1

    JDK: 1.7.0

    开发工具: IntelliJ IDEA 13.1.1

     

    步骤:

    1. 首先看下maven项目的标准目录结构:


     

    2. 看下项目pom.xml的配置,首先要配置maven-jar-plugin,把自己的代码编译打包成jar文件,然后配置maven-assembly-plugin,把整个项目打包成一个发布包。

    Xml代码  收藏代码
    1. <build>  
    2.     <plugins>  
    3.         <!-- The configuration of maven-jar-plugin -->  
    4.         <plugin>  
    5.             <groupId>org.apache.maven.plugins</groupId>  
    6.             <artifactId>maven-jar-plugin</artifactId>  
    7.             <version>2.4</version>  
    8.             <!-- The configuration of the plugin -->  
    9.             <configuration>  
    10.                 <!-- Configuration of the archiver -->  
    11.                 <archive>  
    12.   
    13.                     <!-- 
    14.                         生成的jar中,不要包含pom.xml和pom.properties这两个文件 
    15.                     -->  
    16.                     <addMavenDescriptor>false</addMavenDescriptor>  
    17.   
    18.                     <!-- Manifest specific configuration -->  
    19.                     <manifest>  
    20.                         <!-- 
    21.                             是否要把第三方jar放到manifest的classpath中 
    22.                         -->  
    23.                         <addClasspath>true</addClasspath>  
    24.                         <!-- 
    25.                            生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/ 
    26.                        -->  
    27.                         <classpathPrefix>lib/</classpathPrefix>  
    28.                         <!-- 
    29.                             应用的main class 
    30.                         -->  
    31.                         <mainClass>dbRobot.BeanRobot</mainClass>  
    32.                     </manifest>  
    33.                 </archive>  
    34.                 <!-- 
    35.                     过滤掉不希望包含在jar中的文件 
    36.                 -->  
    37.                 <excludes>  
    38.                     <exclude>${project.basedir}/xml/*</exclude>  
    39.                 </excludes>  
    40.             </configuration>  
    41.         </plugin>  
    42.   
    43.         <!-- The configuration of maven-assembly-plugin -->  
    44.         <plugin>  
    45.             <groupId>org.apache.maven.plugins</groupId>  
    46.             <artifactId>maven-assembly-plugin</artifactId>  
    47.             <version>2.4</version>  
    48.             <!-- The configuration of the plugin -->  
    49.             <configuration>  
    50.                 <!-- Specifies the configuration file of the assembly plugin -->  
    51.                 <descriptors>  
    52.                     <descriptor>src/main/assembly/package.xml</descriptor>  
    53.                 </descriptors>  
    54.             </configuration>  
    55.             <executions>  
    56.                 <execution>  
    57.                     <id>make-assembly</id>  
    58.                     <phase>package</phase>  
    59.                     <goals>  
    60.                         <goal>single</goal>  
    61.                     </goals>  
    62.                 </execution>  
    63.             </executions>  
    64.         </plugin>  
    65.     </plugins>  
    66. </build>  

     

     3. 再来看package.xml的配置

    Xml代码  收藏代码
    1. <assembly>  
    2.     <id>bin</id>  
    3.     <!-- 最终打包成一个用于发布的zip文件 -->  
    4.     <formats>  
    5.         <format>zip</format>  
    6.     </formats>  
    7.   
    8.     <!-- Adds dependencies to zip package under lib directory -->  
    9.     <dependencySets>  
    10.         <dependencySet>  
    11.             <!-- 
    12.                不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录 
    13.            -->  
    14.             <useProjectArtifact>false</useProjectArtifact>  
    15.             <outputDirectory>lib</outputDirectory>  
    16.             <unpack>false</unpack>  
    17.         </dependencySet>  
    18.     </dependencySets>  
    19.   
    20.     <fileSets>  
    21.         <!-- 把项目相关的说明文件,打包进zip文件的根目录 -->  
    22.         <fileSet>  
    23.             <directory>${project.basedir}</directory>  
    24.             <outputDirectory>/</outputDirectory>  
    25.             <includes>  
    26.                 <include>README*</include>  
    27.                 <include>LICENSE*</include>  
    28.                 <include>NOTICE*</include>  
    29.             </includes>  
    30.         </fileSet>  
    31.           
    32.         <!-- 把项目的配置文件,打包进zip文件的config目录 -->  
    33.         <fileSet>  
    34.             <directory>${project.basedir}srcmainconfig</directory>  
    35.             <outputDirectory>config</outputDirectory>  
    36.             <includes>  
    37.                 <include>*.xml</include>  
    38.                 <include>*.properties</include>  
    39.             </includes>  
    40.         </fileSet>  
    41.           
    42.         <!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 -->  
    43.         <fileSet>  
    44.             <directory>${project.build.scriptSourceDirectory}</directory>  
    45.             <outputDirectory></outputDirectory>  
    46.             <includes>  
    47.                 <include>startup.*</include>  
    48.             </includes>  
    49.         </fileSet>  
    50.   
    51.         <!-- 把项目的脚本文件(除了启动脚本文件),打包进zip文件的script目录 -->  
    52.         <fileSet>  
    53.             <directory>${project.build.scriptSourceDirectory}</directory>  
    54.             <outputDirectory></outputDirectory>  
    55.             <includes>  
    56.                 <exclude>startup.*</exclude>  
    57.             </includes>  
    58.         </fileSet>  
    59.           
    60.         <!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->  
    61.         <fileSet>  
    62.             <directory>${project.build.directory}</directory>  
    63.             <outputDirectory></outputDirectory>  
    64.             <includes>  
    65.                 <include>*.jar</include>  
    66.             </includes>  
    67.         </fileSet>  
    68.     </fileSets>  
    69. </assembly>  

     

    4. 经过jar和assembly,最终得到一个可发布的zip文件,内容结构如下:


  • 相关阅读:
    router使用以及vue的动画效果
    配置wbepack
    Axios插件和loading的实现
    自定义组件的 v-model
    组件模块化使用
    组件基础
    vue的使用1
    solt插槽的使用。
    Vue的使用
    Vue的router使用
  • 原文地址:https://www.cnblogs.com/moonciki/p/8145833.html
Copyright © 2011-2022 走看看