Maven 不建议 利用 systemPath 引用本地文件jar

推荐通过 Maven 仓库管理依赖,而非直接引用本地 JAR。具体步骤如下:

1. 将 test-common 作为独立模块安装到本地仓库

如果 test-common 是你自己的项目(非第三方 JAR),先将其安装到本地 Maven 仓库,再通过常规依赖引用:
# 进入 test-common 项目的根目录(包含其 pom.xml)
cd ../test-common

# 执行 mvn install,将其安装到本地仓库(~/.m2/repository)
mvn clean install
执行成功后,test-common-0.0.1-SNAPSHOT.jar 会被安装到本地仓库,其他项目可以直接通过 groupId:artifactId:version 引用。

2. 修改当前项目的 pom.xml,删除 systemPath

原依赖配置可能类似这样(错误写法):
<dependency>
    <groupId>com.jstonesoft</groupId>
    <artifactId>test-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <scope>system</scope> <!-- 问题根源:使用 system 范围 -->
    <systemPath>${project.basedir}/../test-common/target/test-common-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>
 
 
修改为常规依赖(正确写法):
<dependency>
    <groupId>com.jstonesoft</groupId>
    <artifactId>test-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!-- 移除 scope:system 和 systemPath -->
</dependency>
 
 
这样 Maven 会自动从本地仓库(~/.m2/repository)查找 test-common 依赖,无需手动指定路径。

3. (可选)如果是多模块项目,推荐使用父工程管理

如果 test-goods 和 test-common 是同一个父工程下的子模块,可在父工程的 pom.xml 中声明模块关系,避免手动安装:
<!-- 父工程 pom.xml -->
<modules>
    <module>test-common</module>
    <module>test-goods</module>
</modules>
 
此时,test-goods 依赖 test-common 时,直接使用上述常规依赖写法即可,Maven 会自动处理模块间的依赖关系。
 
要本地安装的或者直接引用本地jar,然后才可以访问到。
 
 
posted @ 2025-10-22 16:51  jiduoduo  阅读(7)  评论(0)    收藏  举报