maven多模块工程本地依赖出现 must specify an absolute path but is 问题

背景

主要是用到 maven 私服中没有的依赖,也不想配 nexus,想用本地依赖解决,但是用当把依赖放到父级模块的时候出现了如下错误。如果直接查搜索本地依赖配置,能查到正确的配法,但是如果按如下错误查询我是没有找到对应的解决方案,大模型也没问到,所以就记录下如何解决。

dependencies.dependency.systemPath' for com.zzz:child:jar must specify an absolute path but is ${project.parent.basedir}/lib/child.jar

相关maven变量介绍

{project.basedir} 当前工程的 pom.xml 所在目录

{project.parent.basedir} 当前工程的父级工程的 pom.xml 所在目录,一个 parent 表示一个父级

模块目录

my-project-parent

├── pom.xml

├── lib

│ ├── parent.jar

├── my-project-child

│ ├── pom.xml

│ └── src/

│ ├── lib

│ │ ├── child.jar

当前模块路径的本地依赖配置

此时假设 my-project-child 项目要引入 child.jar 这个本地依赖, pom.xml 配置如下即可

xml 复制代码
<dependency>
	<!-- groupId  artifactId version 随意-->
	<groupId>com.zzz</groupId>
	<artifactId>child</artifactId>
	<version>1.0</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/lib/child.jar</systemPath>
</dependency>

父级模块的本地依赖配置

如果 my-project-child 项目要引入 parent.jar 这个时候本地依赖,pom.xml按如下配置则会报错

xml 复制代码
<dependency>
	<!-- groupId  artifactId version 随意-->
	<groupId>com.zzz</groupId>
	<artifactId>child</artifactId>
	<version>1.0</version>
	<scope>system</scope>
	<systemPath>${project.parent.basedir}/lib/child.jar</systemPath>
</dependency>

好像是因为 {project.parent.basedir} 是相对路径,systemPath 只能用绝对路径,而 {project.basedir} 是绝对路径。有点坑人,错误信息如下所示,

dependencies.dependency.systemPath' for com.zzz:child:jar must specify an absolute path but is ${project.parent.basedir}/lib/child.jar

正确的配法如下所示, 一个 /.. 表示当前模块的一层上级工程,如果有多层的话就多加几个 /..

xml 复制代码
<dependency>
	<!-- groupId  artifactId version 随意-->
	<groupId>com.zzz</groupId>
	<artifactId>child</artifactId>
	<version>1.0</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/../lib/child.jar</systemPath>
</dependency>
相关推荐
VX_bysjlw9852 天前
基于协同过滤的美食推荐系统的设计与实现32221-计算机毕设原创(免费领源码+带部署教程)
java·spring boot·redis·mysql·tomcat·maven·mybatis
不像程序员的程序媛3 天前
maven基础
python·pycharm·maven
2301_32241428044 天前
基于SSM框架的在线考试管理系统的设计与实现14750-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·redis·mysql·tomcat·maven·mybatis·ssm
鸽鸽程序猿5 天前
【项目】【在线判题系统】公共功能
java·spring boot·maven
砚底藏山河5 天前
python量化:行情数据回溯
java·开发语言·python·金融·maven
毕业设计7035 天前
(免费领源码)SSM董家湾线上点餐系统04682- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·redis·mysql·tomcat·maven·mybatis·ssm
技术小结-李爽5 天前
【工具】怎么在终端中启动springboot项目?
java·spring boot·后端·maven
知守观5 天前
Maven 依赖仲裁实战:pom 里写的 2.0,为什么打出的 WAR 包是 1.5?
java·后端·maven
Yyyyyy~6 天前
【Maven】基础
java·maven
記億揺晃着的那天6 天前
Amazon Ads API 自建 SDK 架构升级实战:从手工生成 JAR 到可追溯构建体系
maven·架构设计·sdk开发·openapi·amazon ads api