Maven打包缺少system依赖,临时救急的方法 简单而有效

需求描述
在使用Maven 构建项目,可能会遇到依赖不存在的场景(但是IDEA等直接运行正常的情况)。

错误分析:

system 作用域的依赖在打包(mvn package)时不会包含在项目的构建产物中。这是因为 system 作用域通常用于引入本地系统中的 JAR 文件,而不是从 Maven 仓库中解析。

要解决的问题: 就是让Maven可以解析第三方依赖就好了。

解决思路有两个:

  1. 把第三方依赖放到私仓,保证maven的配置文件可以从私仓下载依赖。
  2. 把第三方依赖放到本地仓库,让 maven 可以管理。

第一个方案适用于:项目不着急哈,可以选择使用Nexus搭建私仓,教程可看: Nexus搭建个人仓库。好处是利于开发团队有效的管理依赖。
第二个方案适用于:真的着急打包,没时间管别人,能用为先。

一、安装第三方(system)依赖到本地仓库,救急方法

参考命令:

mvn install:install-file \
  -Dfile=path/to/your/artifact.jar \
  -DgroupId=your.groupId \
  -DartifactId=your-artifactId \
  -Dversion=1.0 \
  -Dpackaging=jar
  • -Dfile: 指定要安装的 JAR 文件的路径。
  • -DgroupId: 指定项目的 Group ID。
  • -DartifactId: 指定项目的 Artifact ID。
  • -Dversion: 指定项目的版本号。
  • -Dpackaging: 指定 JAR 文件的打包类型,这里是 jar。

举个例子,我之前的第三方依赖有一个:

<dependency>
     <groupId>com.olym.jdbc</groupId>
     <artifactId>olym-jdbc</artifactId>
     <version>1.8.0</version>
     <scope>system</scope>
     <systemPath>${project.basedir}/libs/olym-jdbc-1.8.0-GA-pg.jar</systemPath>
 </dependency>

运行命令

mvn install:install-file -Dfile=/Users/nanan/Documents/work/deepcloud_4a/libs/olym-jdbc-1.8.0-GA-pg.jar -DgroupId=com.olym.jdbc -DartifactId=olym-jdbc -Dversion=1.8.0 -Dpackaging=jar

执行命令后,本地仓库就有了这个依赖,打包时就会有这个第三方依赖。

重点

  1. 这个方法只是救急哈,或者说适合个人开发者,或者第三方依赖很少并且版本稳定。
  2. 最好还是搭建一个私仓,进行依赖管理。Nexus搭建个人仓库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值