最近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
项目的目录结构:
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只生成项目压缩包
这里执行mvn:package
解压后的项目压缩包目录结构:
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
运行结果:
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 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!