SpringBoot添加外部jar包及打包(亲测有效) - 第452篇

news2025/1/23 13:09:34

历史文章(文章累计450+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

深入Feign源码吃透Spring扩展点「扩展点实战系列」- 第446篇

利用Spring扩展点对敏感信息加密解密,一文集齐n多知识点「扩展点实战系列」」- 第447篇

利用Spring扩展点模拟MyBatis的注解编程「知识点多多」「扩展点实战系列」- 第448篇

走进MyBatis源码一探Spring扩展点「知识点多多」「扩展点实战系列」- 第449篇

走进SpringBoot源码吃透Spring扩展点「扩展点实战系列」- 第450篇

5个月的精华:Spring/SpringBoot扩展点手册:手册在手,编码无忧:全网独一份 - 第451篇

悟纤:师傅,最近使用spring-boot-maven-plugin导出jar包之后,运行不起来,报ClassNotFoundException。

师傅:那ClassNotFoundException指向的类是Spring Boot starter的类,还是项目中的类,还是?

悟纤:这个类是项目中引入的外部jar包中的类。

师傅:那这样子的话,很有可能就是在打包的时候,外部jar包没有一起被打包进来了,这要解决了这个问题,那么问题就迎刃而解了。

师傅:有些时候,问题并不是很难,我们要学习的就是学习分析问题,然后解决问题,这也是拉开和别人的差距。

悟纤:那师傅我自己去好好研究下~

师傅:去吧,学会分析问题,解决问题,超越自己。

导读

最近在研究web3的时候,有些依赖包,并没有在maven仓库中,需要从git上下载源码,然后编译打包,最后在引入到项目中。

引入使用之后,编译以及在开发工具运行都是很正常的,但打完包之后,一运行就报错了,通常报错是Caused by: java.lang.ClassNotFoundException,所以这一节就来解决一下两个问题:

(1)如何添加外部jar包?

(2)如何打包外部jar包?

题外话:最近把Spring/Spring扩展点实战系列写完之后,就不知道要写哪方面的文章了,大家对什么感兴趣,可以留言~

一、添加外部jar包

准备一个外部jar包,比如api.jar:

在项目路径下创建一个文件夹libs,将api.jar放到libs下。

添加外部jar依赖:

<dependency>    <groupId>com.kfit</groupId>    <artifactId>api</artifactId>    <version>1.0.0</version>    <scope>system</scope>    <systemPath>${project.basedir}/libs/api.jar</systemPath></dependency>

添加完之后,代码中就可以使用到该jar里的类和方法。

说明:

(1)groupI、artifactId、version随便填写,并不一定要和api.jar的信息,但肯定是要一定的规范和关联性会比较好了。

(2)scope=system表示此依赖是来自外部jar,而不是maven仓库。当scope设置为system时,systemPath属性才会生效,systemPath为一个物理文件路径,来指定依赖的jar其物理磁盘的位置。

(3)${project.basedir}代表根目录。

二、打包外部jar包

上面哪一步仅仅是引用到了项目里,打包的时候是不会打包到jar/war中的。对于Spring Boot的项目,一般都会使用到打包插件,那么只需要添加一个配置即可,如下:

<plugin>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-maven-plugin</artifactId>    <configuration>        <includeSystemScope>true</includeSystemScope>    </configuration></plugin>

说明:重要的是includeSystemScope为true。

如果有些配置文件,并非Spring Boot的默认路径,那么可能就需要借助resouce配置(resources节点和plugins节点同级):

<resources>    <resource>        <!-- directory 表示取该目录下的文件 -->        <directory>libs</directory>        <!--targetPath 指定打包到哪个目录下  默认是放到class目录下-->        <targetPath>/BOOT-INF/lib/</targetPath>        <!-- 取符合格式的所有文件  *代表全部 -->        <includes>            <include>**/*.jar</include>        </includes>    </resource></resources>

总结

(1)如何添加外部jar包:指定score=system,并且配置sysemPath。

(2)如何打包外部jar包:使用spring-boot-maven-plugin,并且配置属性includeSystemScope为true。

最近把Spring/Spring扩展点实战系列写完之后,就不知道要写哪方面的文章了,大家对什么感兴趣,可以留言~

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

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

相关文章

亿级异构任务调度框架设计与实践

背景 阿里云日志服务作为云原生可观测与分析平台。提供了一站式的数据采集、加工、查询分析、可视化、告警、消费与投递等功能。全面提升用户的研发、运维、运营、安全场景的数字化能力。 日志服务平台作为可观测性平台提供了数据导入、数据加工、聚集加工、告警、智能巡检、…

“200万天价床垫”引发的思考:普通床垫越卖越贵是推测还是事实

定制床垫价格高达200万元&#xff1f;近段时间&#xff0c;一场娱乐圈的闹剧让大家把目光转向了床垫市场。在天价床垫的话题下&#xff0c;除了大部分猜测床垫品牌的讨论以外&#xff0c;也有不少人认为指出了“社会现状”&#xff1a;健康品质化的消费追求正在让市面上的床垫价…

Python_数据容器_字典

一、字典&#xff08;映射&#xff09;的定义 生活中的字典&#xff1a; 【字】&#xff1a;【含义】 可以按【字】找出对应的【含义】 Python中的字典&#xff1a; key : value 可以按照[key]找出对应的[value] 1、Python字典使用场景&#xff1a; 通过使用字典&#…

uni-app 之 web-view 与h5 通讯

官网文档&#xff1a;https://uniapp.dcloud.net.cn/component/web-view.html#getenv web-view 是一个 web 浏览器组件&#xff0c;可以用来承载网页的容器&#xff0c;会自动铺满整个页面&#xff08;nvue 使用需要手动指定宽高&#xff09;。 各小程序平台&#xff0c;web-v…

图像下采样再上采样维度不匹配

图像在下采样后再上采样&#xff0c;维度会发生不匹配&#xff0c;假设一幅图像的维度为(b,c,h,w)&#xff0c;那么当h和w是偶数的时候&#xff0c;下采样和上采样是匹配的&#xff0c;当且仅当他是偶数的时候才匹配&#xff0c;然而图像的h和w往往不一定是偶数。当然有许多种方…

【Shell 脚本速成】06、Shell 数组详解

目录 一、数组介绍 二、数组定义 三、数组赋值方式 四、数组取值 案例演示 五、关联数组 5.1 定义管理数组 5.2 关联数组赋值 5.3 管理数组取值 5.4 综合案例 有这样一个现实问题&#xff1a;一个班级学员信息系统&#xff0c;要求存储学员ID、NAME、SCORE、AGE、GE…

关于订单功能的处理和分析

这两天看了一下RABC的权限管理处理&#xff0c;梳理了一下订单功能的表创建&#xff0c;界面&#xff0c;功能分析。 目录 RABC RBAC0模型 那么对于RABC模型我们怎么创建数据库表&#xff1f; 订单模块的梳理 RABC RABC说的是在用户和权限之间多一个角色&#xff0c;用户与…

软件测试基础

⭐️前言⭐️ &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1f341; &#x1f349;精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&…

Spring Cloud OpenFeign - - - >拦截器

源码地址&#xff1a;https://download.csdn.net/download/weixin_42950079/87209379 SpringMVC拦截器 和 OpenFeign拦截器 的区别 初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混&#xff0c;误以为OpenFeign拦截器就是SpringMVC拦截器&#xff1a; …

虹科分享 | 麦氏比浊仪在药敏试验中的应用

细菌是重要的病原微生物&#xff0c;人类针对不同的病原菌研发了各类抗菌药&#xff0c;这些药物对细菌性疾病的治疗与控制起到了关键作用。然而随着新型致病菌的不断出现&#xff0c;加上细菌在药物使用过程中逐渐产生了耐药性&#xff0c;抗菌药的防治效果越来越差。病原菌对…

Python 中的类与继承

类的定义以及实例的建立 Python中&#xff0c;类通过 class 关键字定义。 例如最简单的一个类定义可以为&#xff1a; class Person(object):pass Python 的编程习惯&#xff0c;类名以大写字母开头&#xff0c;紧接着是(object)&#xff0c;表示该类是从哪个类继承下来的。…

解决单文件组件里的跨域请求数据问题(使用vue单文件组件请求数据必会遇到的问题!!!)

为什么要解决跨域问题&#xff1a; 因为浏览器有限制&#xff0c;只有同域名同端口号下的数据才能拿来用&#xff1b;那如果想拿到不同域名不同端口号下的数据就不行了&#xff1b; 在单文件组件中如何去解决跨域问题&#xff1a; 因为服务器没有跨域限制&#xff0c;只有浏览…

PyTorch(四)Torchvision 与 Transforms

文章目录Log一、Torchvision1. CIFAR10① 介绍② 使用2. 与 Transforms 结合使用总结Log 2022.11.28接着开启新的一章2022.11.29继续学习 一、Torchvision 视频教程中 Torchvision v0.9.0文档Torchvision 官方文档Torchvision Datasets API 文档 1. CIFAR10 ① 介绍 CIFAR…

HBuilder X实现banner轮播图

第一步还是去仔细阅读官方文档&#xff0c;找到组件下面的内置组件里面的swiper&#xff0c;如图所示 官方是提供了一个用来制作轮播图的滑块视图容器&#xff1a;swiper 一般来说&#xff0c;轮播图的图片地址是由后端返回给前端遍历显示在页面上的&#xff0c;所以基本的结构…

世界杯的“中国元素”昂扬大国担当,点面科技全新推出的多模态多功能移动终端踏上卡塔尔征途!

本次世界杯中国足球队没有参加&#xff0c;但是在世界杯的赛场上到处都有中国元素。 中国承建的卢赛尔体育场 卡塔尔世界杯主体育场——卢赛尔球场由中国铁建以总承包身份承建&#xff0c;引发了全球瞩目。在本届世界杯赛事中&#xff0c;该场馆将承担包括决赛在内的10场比赛&…

idea手动创建webapp(在main文件夹下)

SSM自学笔记 文章目录一、Maven使用正常情况首先不使用骨架创建好Maven项目然后选择Project Structure...选择要创建webapp的模块修改路径二、Maven不正常工作时一、Maven使用正常情况 首先不使用骨架创建好Maven项目 然后选择Project Structure… 选择要创建webapp的模块 选好…

前置微小信号放大器在光声技术的血管识别研究中的应用

实验名称&#xff1a;前置微小信号放大器在光声技术的血管识别研究中的应用 研究方向&#xff1a;生物识别技术 测试目的&#xff1a; 利用MATLAB对光声血管进行识别&#xff1a;1、对光声血管图库的图像进行预处理包括归一化、二值化、平滑、细化和毛刺修剪得到细化图像&#…

0109 蓝桥杯真题12

/* * 观察下面的现象,某个数字的立方&#xff0c;按位累加仍然等于自身。 * 1^3 1 * 8^3 512 5128 * 17^3 4913 491317 ... *请你计算包括1,8,17在内&#xff0c;符合这个性质的正整数一共有多少个&#xff1f; *填写该数字&#xff0c;不要填写任何多余的内…

【DevPress】V2.4.3版本发布,增加内容收录管理

DevPress V2.4.3版本于2022年11月10日发版&#xff0c;增加内容收录模块&#xff0c;方便用户内容收录。 一、该版本功能包含 1、新需求 1&#xff09;控制台增加内容收录管理模块&#xff0c;包括收录内容额度管理、自动收录功能、基于内容搜索做收录以及收录内容列表。 - …

凯利公式 - Kelly formula

欢迎关注沉睡者IT&#xff0c;点上面关注我 ↑ ↑ 凯利公式的概述 凯利公式是一条可应用在投资资金和赌注的公式。应用于多次的随机赌博游戏&#xff0c;资金的期望增长率最高&#xff0c;且永远不会导致完全损失所有资金的后果。它假设赌博可无限次进行&#xff0c;而且没有下…