解决: ‘dependencies.dependency.systemPath‘ for xx must specify an absolute path but is xx 问题

背景

前几天不是对接了专有钉钉,具体细节可看:对接专有钉钉(浙政钉)登陆步骤
然后我把专有钉钉的包,放到了我基础包中
具体细节可看:
项目中父模块调用子模块出现 Invalid bound statement (not found)问题
我是这样引用的

   <dependency>
            <groupId>com.alibaba.zwdd</groupId>
            <artifactId>zwdd-sdk</artifactId>
            <version>1.2.0</version>
            <scope>system</scope>
           <systemPath>${project.basedir}/lib/zwdd-sdk-java-1.2.0.jar</systemPath>
        </dependency>

今天在saas项目中引入了基础包之后打包就出现了问题了,出现
‘dependencies.dependency.systemPath’ for xx must specify an absolute path but is xx

分析

运行命令:

mvn -X dependency:tree>tree.txt

打开tree.txt 搜索[ERROR]
在这里插入图片描述

很明显是 p r o j e c t . b a s e d i r 和 s y s t e m 作用域的问题, {project.basedir}和system作用域的问题, project.basedirsystem作用域的问题,{project.basedir}是基础包项目的路径,打包的时候很明显取不到。以及 system 作用域的依赖问题, system 作用域不会从Maven 仓库中解析,而是依赖于本地文件系统中的 JAR 包。

解决方案

那我们直接去掉system作用域,将第三方包打进本地仓库,然后依赖本地仓库就可以了, 具体怎么做的尼?
执行:

mvn install:install-file -Dfile=path/to/zwdd-sdk-java-1.2.0.jar -DgroupId=com.alibaba.zwdd -DartifactId=zwdd-sdk -Dversion=1.2.0 -Dpackaging=jar

-Dfile= 包路径,最好写绝对路径,可直接复制
在这里插入图片描述

DgroupId=对应maven中的groupId
-DartifactId=对应maven中的artifactId
-Dversion=对应maven中的version

然后我们在这样引用


        <dependency>
            <groupId>com.alibaba.zwdd</groupId>
            <artifactId>zwdd-sdk</artifactId>
            <version>1.2.0</version>
        </dependency>

再次在saas项目中打包就可以正常打包了。

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚开发小咸鱼

原创不宜,请作者喝杯咖啡吧。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值