java中的接口是类吗
424
2022-11-23
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
项目的目录结构:
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包
主要配置如下:
完整配置见底部
5. Maven使用maven-assembly-plugin装需要打包的文件打进zip包
pom.xml下的主要配置如下:
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文件:
xmlns:xsi="http://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"> vQSjnVhHN
xmlns:xsi="http://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">
vQSjnVhHN
9. package.xml文件
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~