ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

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,然后才可以访问到。
 
 
返回列表