Maven 生成打包可执行jar包的方法步骤

最近IDEA打可执行Jar包搞了三天,一直失败,好好学习一下Maven-assembly,在此记录一下

1. 需求

项目打包,满足以下要求:

1.整个项目打一个Zip包下面包括应用程序、应用程序依赖的jar包、说明文档
2.项目打的jar包可以执行不同类里的Main函数
3.项目源码打的jar包要与依赖的第三方jar包分开
4.项目里的执行脚本也要一块打包并进行分类
5.document目录下的readme.txt放在压缩包的根目录下,其他的还放在这个目录下
6.打的jar包去掉不需要的目录(文件)

2. 开发环境

IDEA-2016 Maven3.3.9

项目的目录结构:

Maven 生成打包可执行jar包的方法步骤_第1张图片

3. Maven打包插件介绍

assembly翻译过来就是组装、装配的意思
Maven对项目打包常用的打包插件有三种,分别是:

插件 功能
maven-jar-plugin maven 默认打包插件,用来创建 project jar
maven-shade-plugin 打可执行包,executable(fat) jar
maven-assembly-plugin 支持自定义打包方式

这里使用maven-jar-plugin和maven-assembly-plugin
项目目录:

每次找jar包之前先clean一下,不然的话IDEA会认为你的项目没有修改而不重新加载

另:配置文件的注释已经很详细了,这里就不另外再说明了

4. Maven使用maven-jar-plugin打可执行jar包

主要配置如下:


  org.apache.maven.plugins
  maven-jar-plugin
  2.4
  
  
    
    
      
      false

      
      
        
        true
        
        
        lib/
      
    
    
    
      
      **/assembly/
    
  

完整配置见底部

5. Maven使用maven-assembly-plugin装需要打包的文件打进zip包

pom.xml下的主要配置如下:


  org.apache.maven.plugins
  maven-assembly-plugin
  2.4
  
  
    
    
      src/main/resources/assembly/package.xml
    
  
  
    
      make-assembly
      
      package
      
        
        single
      
    
  

assembly插件的配置文件package.xml见底部

6. Maven生成可执行jar包及zip项目压缩包

双击执行mvn:package会生成两个包:可执行jar包和项目压缩包,因为assembly的装配配置的是绑定到这上面来的
双击执行assembly:single只生成项目压缩包

Maven 生成打包可执行jar包的方法步骤_第2张图片

这里执行mvn:package

Maven 生成打包可执行jar包的方法步骤_第3张图片

解压后的项目压缩包目录结构:

Maven 生成打包可执行jar包的方法步骤_第4张图片

7. 执行jar包

解压缩生成的项目包
TestString的源码:

public class TestString {
  public static void main(String[] args) {
    String[] arr = new String[]{"aaa", "bbb", "ccc", "DDD", "EEE", "FFF"};
    System.out.println(StringUtils.join(arr, "---"));
  }
}

TestNumber的源码:

public class TestNumber {
  public static void main(String[] args) {
    Integer[] arr = new Integer[]{11, 22, 33, 44, 55, 66};
    System.out.println(StringUtils.join(arr, "---"));
  }
}

命令行运行生成的jar

java -classpath dong.jar com.dong.bigdata.TestString
java -classpath dong.jar com.dong.bigdata.TestNumber

运行结果:

Maven 生成打包可执行jar包的方法步骤_第5张图片

8. pom.xml配置

包含两个文件:
pom.xml整体的配置
package.xml包含在pom.xml中,用于指定assembly装配时的配置

pom.xml文件:



  4.0.0
  
  
  com.dong
  
  bigdata
  
  jar
  
  1.0-SNAPSHOT

  
  
  bigdata
  
  http://http://www.dong.com/.com

  
  
    
    src/main/scripts/execute
    
    document
    
    src/main/resources
    
    UTF-8

    
    1.8
    
    1.8
  

  
  
    
    
      aliyun
      http://maven.aliyun.com/nexus/content/groups/public
    
    
    
      repo2
      http://repo2.maven.org/maven2/
    

    
    
      cloudera
      https://repository.cloudera.com/artifactory/cloudera-repos/
    

    
    
      scala-tools.org
      Scala-Tools Maven2 Repository
      http://scala-tools.org/repo-releases
    
  

  
    
    
      org.apache.commons
      commons-lang3
      3.4
    
  

  
    dong
    
      
      
        org.apache.maven.plugins
        maven-jar-plugin
        2.4
        
        
          
          
            
            false

            
            
              
              true

              
              lib/
            
          
          
          
            
            **/assembly/
          
        
      

      
      
        org.apache.maven.plugins
        maven-assembly-plugin
        2.4
        
        
          
          
            src/main/resources/assembly/package.xml
          
        
        
          
            make-assembly
            
            
            
              
              single
            
          
        
      
    
  

9. package.xml文件



  full
  
  
    zip
  

  
  
    
      
      false

      
      
      
      lib

      
      
    
  

  
  
    
    
      ${project.build.directory}
      
      
        *.jar
      
    

    
    
      ${projet.document.directory}
      
      
        readme.*
      
    

    
    
      ${project.document.directory}
      document
      
        readme.*
      
    

    
    
      ${project.script.execute.directory}
      
      
        *
      
    

  

到此这篇关于Maven 生成打包可执行jar包的方法步骤的文章就介绍到这了,更多相关Maven 生成可执行jar 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(Maven 生成打包可执行jar包的方法步骤)