当前位置: 首页 > news >正文

maven项目打成可运行的jar及pom中的依赖一同打包

maven项目打jar及pom中的依赖一同打包

最近开发中有个需求,不部署新的服务,只jar包执行

那maven项目中,代码如何以jar的方式运行、如何把代码打成jar、pom中的依赖如何与代码一同打到jar包中?

1、代码如何以jar的方式运行?

pom文件中,需要增加配置

<packaging>jar<packaging>

这种方式用于创建一个可执行的jar,适用于java项目

packaging的其它几种值及含义,请自行百度!

2、如何把代码打成jar?

写好代码后,执行maven clean、maven package命令,就可以把代码打成jar,生成的jar文件在项目目录下 target文件夹下
在这里插入图片描述
然后,执行clean package命令,打成jar后,内心一阵狂喜,终于搞定了,然后赶紧让运维在测试服务器上运行,,然而,出错了,,

错误一:no main manifest attribute, in xxx.jar
jar包中缺少一个main方法,运行jar时找不到程序的执行入口,但main方法有的
在这里插入图片描述
难道得指定main方法所在的类吗,执行java -cp newfuel-transmit-delete-lindorm-1.0-SNAPSHOT.jar org.navinfo.newfuel.DeleteLindormApplication命令
也是报错。。。

错误二:java.lang.ClassNotFoundException:xxx.xxx.xxx

在这里插入图片描述
我看了下代码,是引用的依赖包找不到,,此时jar包大小17KB

接下来要解决的就是,如何把需要的依赖一同打入jar中

3、pom中的依赖如何与代码一同打到jar包中?

pom文件中,增加如下配置

   <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.14</version><relativePath/></parent><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.5.14</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

然后,再次执行clean package命令,打成jar后,再运行,成功了,此时jar包大小43MB

注意:
运行jar包时如果出现乱码,需要设置字符编码

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 持续集成01--Git版本管理及基础应用实践
  • Git学习记录
  • ES6 正则的扩展(十九)
  • 实战:详解Spring创建bean的流程(图解+示例+源码)
  • vscode搭建PyQt + Quick开发环境
  • 阿里云服务器 篇五:短链服务网站
  • 使用NIFI连接瀚高数据库_并从RestFul的HTTP接口中获取数据局_同步到瀚高数据库中---大数据之Nifi工作笔记0067
  • Vue的自定义事件:组件间通讯的艺术
  • GitHub 令牌泄漏, Python 核心资源库面临潜在攻击
  • Linux云计算 |【第一阶段】ENGINEER-DAY2
  • 敏捷开发适用于哪些项目?你用对了吗?
  • 《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》
  • 导航专业入门,高考/考研假期预习指南
  • MKS流量计软件MFC通讯驱动使用于C和P系列MFC控制USB接口W10系统
  • docker compose 部署交互模式的容器-以Ubuntu为例
  • CSS居中完全指南——构建CSS居中决策树
  • JavaScript类型识别
  • jdbc就是这么简单
  • Map集合、散列表、红黑树介绍
  • PermissionScope Swift4 兼容问题
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • supervisor 永不挂掉的进程 安装以及使用
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • uva 10370 Above Average
  • vue的全局变量和全局拦截请求器
  • 基于遗传算法的优化问题求解
  • 小李飞刀:SQL题目刷起来!
  • 函数计算新功能-----支持C#函数
  • ​如何在iOS手机上查看应用日志
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (windows2012共享文件夹和防火墙设置
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (笔试题)合法字符串
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (学习日记)2024.02.29:UCOSIII第二节
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .dwp和.webpart的区别
  • .NET Standard 的管理策略
  • .Net Web窗口页属性
  • @Transient注解
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ C++ ] STL_list 使用及其模拟实现
  • [asp.net core]project.json(2)
  • [Avalon] Avalon中的Conditional Formatting.
  • [BROADCASTING]tensor的扩散机制
  • [BZOJ] 3262: 陌上花开
  • [C/C++]数据结构 堆的详解
  • [C++] 容器适配器:深入理解Stack与Queue的底层原理
  • [CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - 视觉模型篇
  • [Day 65] 區塊鏈與人工智能的聯動應用:理論、技術與實踐