引入的三方依赖 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. [转帖]构建 TiFlash 副本

    https://docs.pingcap.com/zh/tidb/stable/create-tiflash-replicas#%E6%8C%89%E8%A1%A8%E6%9E%84%E5%BB%BA ...

  2. [转帖]PostgreSQL 慢查询SQL跟踪

    https://www.cnblogs.com/VicLiu/p/12017704.html PostgreSQL 开启慢SQL捕获在排查问题时是个很有效的手段.根据慢SQL让我在工作中真正解决了实际 ...

  3. [转帖]jmeter必备正则表达式

    元字符 .  注意是一个点号,表示匹配任意单个字符 \d 表示匹配任意单个数字 [0-9] 等价于0-9 [a-zA-Z] 等价于所有的大小写字母 限定符 +  加号,表示匹配至少大于1次(1次或多次 ...

  4. Python学习之六_同时访问Oracle和Mysql的方法

    Python学习之六_同时访问Oracle和Mysql的方法 背景 jaydebeapi 可以访问大部分数据库. 但是他有一个问题是仅能够访问一种类型的数据库. 如果同事连接两种数据库,那么就会出现问 ...

  5. 日常测试进行beans比较的简单方法

    日常测试进行beans比较的简单方法 摘要 想每天把有变化的bean抓取出来有新增的beans时能够及时进行分析和介入 保证beans 都是符合规范的. 方式和方法 开启actuator 打开bean ...

  6. [转帖]SPEC测试arm服务器性能,SPECJVM2008测试处理器性能_服务器评测与技术-中关村在线...

    首先,我们使用SPECJVM2008测试最新至强E5处理器的虚拟化性能. SPECJVM2008是一种通用的多线程Java基准测试工具,它能够反映JRE(Java Runtime Environmen ...

  7. date的命令使用.

    date命令的使用 1.直接用date命令显示日期时间 在命令行中输入date然后回车,显示结果"Wed Aug 7 08:58:07 CST 2019".这是系统根据设定的时区显 ...

  8. 语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用

    大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解.Zero-shot CoT.Few-shot CoT 以及在LLM上应用 1.思维链定义 背景 在 2017- ...

  9. 4.2 Inline Hook 挂钩技术

    InlineHook 是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截.修改.增强现有函数功能.它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义 ...

  10. Java并发(六)----线程start、run、state方法

    1.start 与 run 调用 run public static void main(String[] args) {    Thread t1 = new Thread("t1&quo ...