引入的三方依赖 jar 包, scope 为 system 的包 maven 默认是不打包进去的,需要加这个配置

在pom.xml文件中找到spring-boot-maven-plugin插件,添加如下配置
<configuration>
    <includeSystemScope>true</includeSystemScope>
</configuration>

java项目通过maven依赖构建,一般依赖的jar文件都是通过maven配置后从本地仓库查找,如果没有则从中央仓库或私服中远程下载,但有时候引用的jar文件远程仓库中没有,则可以配置本地系统路径来引用,也可以先将本地的jar文件install到本地仓库或上传到远程仓库中。下面就来介绍下maven引入本地jar不能打入部署包的问题解决方法

1为了解决maven本地依赖jar文件没有打包到部署包的问题,我们这里以spring boot的项目依赖oracle驱动包的例子来说明,大家都知道oracle驱动包由于版权的问题,现在maven的仓库中一般都没有办法直接下载了,所以大部分情况都需要自己上传或者本地依赖,如图所示,采用<scope>system</scope>,在定义systemPath的位置信息

2.systemPath的路径就是本地jar文件你放在系统文件的目录,最好将此文件放置在项目路径下,这样团队的其他成员都可以使用,使用${project.basedir}可以动态获取到项目的根目录,再拼接上对应的子目录

3.配置完成之后,刷新maven配置,然后clean package打包,spring boot打包的是项目targe目录下的jar文件

4.解压jar文件查看BOOT-INF/lib下面的所有依赖jar是否包含oracle驱动包,此时是没有的,因为默认spring-boot打包插件是不会将本地依赖jar文件打进部署包的

5.在pom.xml文件中找到spring-boot-maven-plugin插件,添加如下配置

<configuration>

    <includeSystemScope>true</includeSystemScope>

</configuration>

6.然后再次clean package,解压查看部署包里文件,现在可以看到oracle驱动包此时已经被打入进去

7.以为的错误开发环境是不能发现的,但将部署包更新到服务器的时候,如果有本地依赖jar包,但没有开启这样的配置话,会报classnotfound的错误

注意事项

  • 如果有私服仓库的话,建议将jar文件上传到私服仓库中

maven引入本地jar不能打入部署包的问题解决的更多相关文章

  1. maven引入本地jar 打jar包

    没搭建私服的情况下引入本地的jar,并把本地jar打包进项目的run jar 以打包引入hadoop-common-2.7.5.jar为例 引用 复制jar包所在的路径 打开cmd命令提示符 切换路径 ...

  2. Maven引入本地Jar包并打包进War包中

    1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目根目录即pom.xml文件所在的同级目录,可以 ...

  3. maven引入本地jar包的方法

    maven作为包管理工具,好处不必多说 但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖) 如果直接下载到本地之后,怎么整合到自己的maven工程 ...

  4. Maven引入本地jar包

    <dependency> <groupId>${gorup}</groupId> <artifactId>${artifact}</artifac ...

  5. maven 引入本地 jar

    $ 参考1 : https://www.cnblogs.com/lixuwu/p/5855031.html ! 注: 参考1中的第二种方法,作者并未实际尝试,我尝试了,虽然在eclipse 中编译不报 ...

  6. maven引用本地jar,并打包部署

    由于项目需要的一个jar在maven仓库里没有,又不想把jar手动导入仓库.然而百度的几个处理方式都是一样的方法,我却没有一个成功的.于是就请教了大神,大神也是各种测试,终于成功实现了,实现如下: 新 ...

  7. maven引入本地jar

    mvn install:install-file -Dfile=***.jar -DgroupId=**.***.** -DartifactId=* -Dversion=0.8.11 -Dpackag ...

  8. pringboot pom文件引入本地jar包和对其打jar包

    maven引入本地jar包需要在pom文件中天剑如下配置: <dependency> <groupId>com.baidu</groupId> <artifa ...

  9. Springboot中如何引入本地jar包,并通过maven把项目成功打包成jar包部署

    最近尝试引入阿里云的短信验证码,阿里云的core sdk是maven就有的,但是短信相关的jar包却不是放在maven的,所以得引入本地的下载回来的jar包.本地开发直接引入,idea是可以直接跑调用 ...

  10. maven pom 引入本地jar包

    maven pom 引入本地jar包 在pom.xml同级目录下新建lib文件夹,并放入本地jar包. 配置Jar包的dependency,包括groupId,artifactId,version三个 ...

随机推荐

  1. [转帖]Centos 7 查看磁盘io ,找出占用io读写很高的进程

    1,先用iostat查看磁盘io 是否读写负载很高 用iostat -x 1 10 如果 iostat 没有,要 yum install sysstat安装这个包,第一眼看下图红色圈圈的那个如果%ut ...

  2. Specjvm2008的简单学习

    Specjvm2008的简单学习 摘要 前期整理过很多需要通过编译指定命令进行性能测试的工具 但是这种工具无法充分模式JAVA应用. 并且无法模拟不同jvm版本的性能情况. 早上去北京出差路上看到了 ...

  3. [专题]测试发现部分NVMe SSD的掉电数据保护功能让人失望

    https://www.cnbeta.com/articles/tech/1240441.htm 这个有点过分了. 苹果开发者 Russ Bishop 在一份测试报告中指出:即使掉电保护已经是个绕不开 ...

  4. MySQL存储过程、索引、分表对比

    MySQL存储过程.索引和分表是用于提高查询效率的三种不同方法,它们各自对查询效率有不同的影响和应用场景.以下是它们的对比: MySQL存储过程: 影响查询效率: 存储过程通常不直接影响查询效率,因为 ...

  5. C# 求两个时间的差值

    商品保质期 //dateStart:系统时间: dateEnd :物品到期日期 DateTime dateStart = DateTime.Now.Date;//2021/7/8 DateTime d ...

  6. OCR文字检测与识别系统:融合文字检测、文字识别和方向分类器的综合解决方案

    1. OCR文字检测与识别系统:融合文字检测.文字识别和方向分类器的综合解决方案 前两章主要介绍了DBNet文字检测算法以及CRNN文字识别算法.然而对于我们实际场景中的一张图像,想要单独基于文字检测 ...

  7. 2.0 熟悉CheatEngine修改器

    Cheat Engine 一般简称为CE,它是一款功能强大的开源内存修改工具,其主要功能包括.内存扫描.十六进制编辑器.动态调试功能于一体,且该工具自身附带了脚本工具,可以用它很方便的生成自己的脚本窗 ...

  8. C/C++ 类与构造析构等知识

    简单定义类 #include <iostream> #include <string> using namespace std; class Student { public: ...

  9. C/C++ Qt 常用数据结构

    Qt 是一个跨平台的图形化类库,常用数据结构就是对C++ STL的二次封装,使其更加易用,如下是经常会用到的一些数据结构和算法,其中包括了QString,QList,QLinkedList,QVect ...

  10. 使用JAAS文件登陆kerberos(zookeeper)

    Kerberos 5 Configuration Since the SPNEGO mechanism will call JGSS, which in turns calls the Kerbero ...