利用MAVEN打包可运行jar包,包括依赖的第三方包

背景:

另一篇文章说了如何利用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.           
  4.         <plugin>  
  5.             <groupId>org.apache.maven.pluginsgroupId>  
  6.             <artifactId>maven-jar-pluginartifactId>  
  7.             <version>2.4version>  
  8.               
  9.             <configuration>  
  10.                   
  11.                 <archive>  
  12.   
  13.                       
  14.                     <addMavenDescriptor>falseaddMavenDescriptor>  
  15.   
  16.                       
  17.                     <manifest>  
  18.                           
  19.                         <addClasspath>trueaddClasspath>  
  20.                           
  21.                         <classpathPrefix>lib/classpathPrefix>  
  22.                           
  23.                         <mainClass>dbRobot.BeanRobotmainClass>  
  24.                     manifest>  
  25.                 archive>  
  26.                   
  27.                 <excludes>  
  28.                     <exclude>${project.basedir}/xml/*exclude>  
  29.                 excludes>  
  30.             configuration>  
  31.         plugin>  
  32.   
  33.           
  34.         <plugin>  
  35.             <groupId>org.apache.maven.pluginsgroupId>  
  36.             <artifactId>maven-assembly-pluginartifactId>  
  37.             <version>2.4version>  
  38.               
  39.             <configuration>  
  40.                   
  41.                 <descriptors>  
  42.                     <descriptor>src/main/assembly/package.xmldescriptor>  
  43.                 descriptors>  
  44.             configuration>  
  45.             <executions>  
  46.                 <execution>  
  47.                     <id>make-assemblyid>  
  48.                     <phase>packagephase>  
  49.                     <goals>  
  50.                         <goal>singlegoal>  
  51.                     goals>  
  52.                 execution>  
  53.             executions>  
  54.         plugin>  
  55.     plugins>  
  56. build>  

 

 3. 再来看package.xml的配置

 

Xml代码   收藏代码
  1. <assembly>  
  2.     <id>binid>  
  3.       
  4.     <formats>  
  5.         <format>zipformat>  
  6.     formats>  
  7.   
  8.       
  9.     <dependencySets>  
  10.         <dependencySet>  
  11.               
  12.             <useProjectArtifact>falseuseProjectArtifact>  
  13.             <outputDirectory>liboutputDirectory>  
  14.             <unpack>falseunpack>  
  15.         dependencySet>  
  16.     dependencySets>  
  17.   
  18.     <fileSets>  
  19.           
  20.         <fileSet>  
  21.             <directory>${project.basedir}directory>  
  22.             <outputDirectory>/outputDirectory>  
  23.             <includes>  
  24.                 <include>README*include>  
  25.                 <include>LICENSE*include>  
  26.                 <include>NOTICE*include>  
  27.             includes>  
  28.         fileSet>  
  29.           
  30.           
  31.         <fileSet>  
  32.             <directory>${project.basedir}\src\main\configdirectory>  
  33.             <outputDirectory>configoutputDirectory>  
  34.             <includes>  
  35.                 <include>*.xmlinclude>  
  36.                 <include>*.propertiesinclude>  
  37.             includes>  
  38.         fileSet>  
  39.           
  40.           
  41.         <fileSet>  
  42.             <directory>${project.build.scriptSourceDirectory}directory>  
  43.             <outputDirectory>outputDirectory>  
  44.             <includes>  
  45.                 <include>startup.*include>  
  46.             includes>  
  47.         fileSet>  
  48.   
  49.           
  50.         <fileSet>  
  51.             <directory>${project.build.scriptSourceDirectory}directory>  
  52.             <outputDirectory>outputDirectory>  
  53.             <includes>  
  54.                 <exclude>startup.*exclude>  
  55.             includes>  
  56.         fileSet>  
  57.           
  58.           
  59.         <fileSet>  
  60.             <directory>${project.build.directory}directory>  
  61.             <outputDirectory>outputDirectory>  
  62.             <includes>  
  63.                 <include>*.jarinclude>  
  64.             includes>  
  65.         fileSet>  
  66.     fileSets>  
  67. assembly>  

 

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


你可能感兴趣的:(利用MAVEN打包可运行jar包,包括依赖的第三方包)