古人已用三冬足,年少今开万卷余。这篇文章主要讲述如何使用maven把项目及其依赖打包为可运行jar包相关的知识,希望能为你提供帮助。
转载原文 : ??https://www.coder.work/article/3793642??
问题我想把java项目打包为可运行的分布式jar包。我该怎样做,才能把项目中maven所依赖的jar包导入到我的项目jar包中?
回答在??pom.xml?
?文件中,加入如下的插件:
< build>
< plugins>
< plugin>
< artifactId> maven-assembly-plugin< /artifactId>
< configuration>
< archive>
< manifest>
< !-- 这里是你的项目main函数所在的类的全限定名 -->
< mainClass> fully.qualified.MainClass< /mainClass>
< /manifest>
< /archive>
< descriptorRefs>
< descriptorRef> jar-with-dependencies< /descriptorRef>
< /descriptorRefs>
< /configuration>
< /plugin>
< /plugins>
< /build>
之后,运行maven命令:
mvn clean compile assembly:single?
?clean?
??,??compile?
??,??assembly:single?
??任务将会依次被执行;??compile?
??任务必须写在??assembly:single?
?之前,否则打包后的jar包内将不会有你的编译代码。(译注:执行完后,会在你的maven项目的target目录下,生成想要的jar包,而不再需要使用?
?mvn package?
?命令进行打包)通常情况下,上述maven命令执行后会自动绑定到项目的构建阶段,从而保证了以后在执行?
?mvn install?
??命令时的jar包也会被构建。 (译注:下面是实际上完整的默认的??pom.xml?
??配置,只不过??<
executions>
?
?可以被省略,若省略则按照下述默认的配置执行)< plugin>
< artifactId> maven-assembly-plugin< /artifactId>
< configuration>
< archive>
< manifest>
< mainClass> fully.qualified.MainClass< /mainClass>
< /manifest>
< /archive>
< descriptorRefs>
< descriptorRef> jar-with-dependencies< /descriptorRef>
< /descriptorRefs>
< /configuration>
< executions>
< execution>
< id> make-assembly< /id> < !-- 用于maven继承项目的聚合 -->
< phase> package< /phase> < !-- 绑定到package阶段 -->
< goals>
< goal> single< /goal>
< /goals>
< /execution>
< /executions>
< /plugin>
拓展怎样去运行打包后的可运行jar包?
- 对上述配置中已经指定了?
?main?
?函数所在类的jar包,打开命令行窗口,输入命令:
java -jar jar包的路径/jar包的名字.jar
例如:
java -jar D:\\my_java_project\\maven_test.jar
- 若在pom.xml并没有指定?
?main?
?方法所在类,那么该jar的运行应采取如下命令:
java -cp jar包的路径/jar包的名字.jar main方法所在类的全限定名
例如:
java -cp D:\\my_java_project\\maven_test.jar com.my.path.MainClass
【如何使用maven把项目及其依赖打包为可运行jar包】
推荐阅读
- ceph基于VMware Workstation虚拟机Ceph集群安装配置笔记#私藏项目实操分享#
- ROS 2.0-SPRINGER-机器人学工具科研和教学重要参考书-机器人操作系统(ROS)-THE COMPLETE REFERENCE
- Prometheus监控K8S各项指标
- linux之service命令
- 云原生应用配置中心简述
- 如何修复Windows更新错误8024402c(解决办法分步指南)
- Win10专业版下Edge弹出explorer.exe 没有注册提示
- Win10专业版下安装好的极点5笔图标没有了怎样办?
- 如何避开Win10专业版更新补丁后浏览器罢工的现象