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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notebook: 是一个强大的交互式计算

文章目录 引言Jupyter Notebook的原理基础使用安装与启动单元格&#xff08;Cell&#xff09;操作快捷键 高级使用魔术命令Markdown支持可视化版本控制 优缺点优点缺点 官网链接结论 引言 Jupyter Notebook是一个强大的交互式计算环境&#xff0c;特别适用于数据科学、机器学习…

Go: IM系统基于xorm实现简单的注册和登录功能

概述 IM系统允许用户通过网络实时发送和接收消息它通常包括用户注册、登录、消息发送、接收、存储以及用户状态管理等核心功能其中&#xff0c;登录功能是用户访问IM服务的第一步&#xff0c;它确保了系统的安全性和用户数据的准确性 基于MVC的目录设计 im-project ├── g…

编程中的智慧之设计模式三

深入探索设计模式&#xff1a;实际应用和优化策略 在前两篇文章中&#xff0c;我们详细探讨了创建型模式、结构型模式、行为模式和架构模式的基本概念及其在Java中的实现。在本文中&#xff0c;我们将进一步探讨如何在实际项目中应用和优化这些模式&#xff0c;尤其是如何在大…

海豚调度器(DolphinScheduler)集群搭建详细笔记

海豚调度器集群搭建笔记 1.DolphinScheduler Cluster部署1.1 集群部署规划1.2 集群准备工作1.3 初始化数据库1.4 修改安装环境配置1.5 安装DolphinScheduler1.6 启停命令1.7 登录 DolphinScheduler UI 1.DolphinScheduler Cluster部署 分布式去中心化易扩展的工作流任务调度系…

CTF-Web习题:[HFCTF2021]Unsetme

题目链接&#xff1a;[HFCTF2021]Unsetme 解题思路 打开靶场发现是一段PHP源码 做一下代码审阅&#xff1a; <?php// Kickstart the framework $f3require(lib/base.php);//引入f3框架源码$f3->set(DEBUG,1);//f3对象设置DEBUG属性 if ((float)PCRE_VERSION<8.0)…

腾讯元宝上线“3D角色梦工厂”:快速生成专属3D角色!

7月16日&#xff0c;腾讯旗下大模型应用“腾讯元宝”上线“3D角色梦工厂”&#xff0c;允许用户通过上传一张五官清晰的正面头像&#xff0c;并选择不同的角色模板&#xff0c;迅速生成个人3D角色&#xff01; 技术特点 “3D角色梦工厂”将大模型生成技术与3D应用相结合&#…

JavaDS —— 二叉树

树的基本概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 树形结构中&#xff0c;子树之间不能有…

Pandas库学习之DataFrame.drop()函数

Pandas库学习之DataFrame.drop()函数 一、简介 DataFrame.drop 是 Pandas 库中一个非常实用的函数&#xff0c;用于删除 DataFrame 中的行或列。通过指定列名或行索引&#xff0c;可以灵活地从数据集中移除不需要的数据。这对于数据清洗和预处理非常有用。 二、语法和参数 D…

AWS IoT Core 优化分析:提升性能、安全性和成本效益

1. 引言 在当今快速发展的物联网(IoT)领域,AWS IoT Core已成为许多企业首选的IoT平台。然而,随着设备数量的增加和数据流量的激增,优化AWS IoT Core的性能、安全性和成本效益变得至关重要。本文将深入探讨如何通过数据分析来优化AWS IoT Core的各个方面,帮助您充分发挥这个强大…

02线性表 - 链表

这里是只讲干货不讲废话的炽念&#xff0c;这个系列的文章是为了我自己以后复习数据结构而写&#xff0c;所以可能会用一种我自己能够听懂的方式来描述&#xff0c;不会像书本上那么枯燥和无聊&#xff0c;且全系列的代码均是可运行的代码&#xff0c;关键地方会给出注释^_^ 全…

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

Docker Ubuntu Milvus 2.4 windows 详细安装攻略

目录 背景 安装Docker Destop 下载docker 破解之法 启动 docker destop OS镜像 前置条件 dism 启动WSL服务 命令

MQTT 固定报头中的剩余长度介绍

MQTT协议中的剩余长度&#xff08;Remaining Length&#xff09;是一个重要的概念&#xff0c;它表示当前报文剩余部分的字节数&#xff0c;包括可变报头和负载的数据&#xff0c;但不包括用于编码剩余长度字段本身的字节数。以下是对MQTT剩余长度的详细说明&#xff1a; 一、…

python中excel的读取和写入

python中对于excel文件数据的读取和写入&#xff0c;主要有两种方法&#xff0c;一种是通过pandas库&#xff0c;一种是通过openpyxl库。在实际过程中&#xff0c;因为pandas库对单元格的定位和访问比较方便&#xff0c;openpyxl可以对单个单元格进行写入&#xff0c;而pandas库…

GaussDB常见调优指南

文章目录 GaussDB常见调优指南一. Analyze 统计信息解析二. Explain 分布式计划解析三. 性能调优总体策略详解四. 性能调优之坏味道 SQL 识别五. 性能调优之好味道表定义六. 性能调优之 SQL 改写七. 性能调优之路径干预八. 性能调优之 Plan hint 运用九. 性能调优之 GUC 参数调…

C学习(数据结构)-->单链表习题

目录 一、环形链表 题一&#xff1a;环形链表 思路&#xff1a; 思考一&#xff1a;为什么&#xff1f; 思考二&#xff1a;快指针一次走3步、4步、......n步&#xff0c;能否相遇 step1&#xff1a; step2&#xff1a; 代码&#xff1a; 题二&#xff1a; 环形链表 I…

SAE J1939协议入门(一)

一、SAE J1939是什么 SAE J1939&#xff08;以下简称J1939&#xff09;是由汽车工程师协会&#xff08;SAE &#xff09;定义的标准&#xff0c;专门用于提供微处理器系统之间的串行数据通信。虽然CAN存在并且被广泛用于小型车辆&#xff0c;但J1939被设计为大型车辆复杂网络的…

antd drawer extra中按钮点击事件获取子组件的数据

在Ant Design的Drawer组件中&#xff0c;需要在extra区域的按钮点击事件中获取子组件的数据&#xff0c;可以通过以下步骤实现&#xff1a; 使用useRef钩子在父组件中创建一个ref引用子组件。 在子组件中使用useImperativeHandle或forwardRef来暴露一个方法给父组件调用。 在ex…

android mm m mmm 区别

Android开发中的m, mm, mmm命令用于编译源代码&#xff0c;‌它们的主要区别在于编译的范围和目标。‌ m命令&#xff1a;‌用于从Android源码的根目录开始编译所有的模块。‌这个命令会编译整个Android源代码树&#xff0c;‌确保所有必要的模块都被编译12。‌ mm命令&#x…

如何用Java实现运营商三要素接口调用

今天给大家案例运营商三要素接口&#xff0c;该接口实用性极强&#xff01;建议大家点赞收藏&#xff0c;如果问题可随时评论区留言交流&#xff01; 一、什么是运营商三要素&#xff1f; 运营商三要素通常指的是手机号码、用户姓名和身份证号码。 二、运营商三要素应用场景…