Windows环境下Maven无法找到本地仓库资源问题求助
问题排查与解决思路
核心原因推测
你使用-DgeneratePom=true自动生成的POM文件中,包含了原JAR包自带的依赖配置,其中就有对org.eclipse.nebula:progresscircle:pom:1.0.0-SNAPSHOT的引用。尽管你在项目依赖里指定的是it.eng.locallib组下的JAR,但Maven会解析本地仓库中该JAR对应的POM,尝试拉取其中定义的依赖,而这个SNAPSHOT版本的POM在本地仓库不存在,导致构建失败。
排查步骤
- 找到本地仓库中
it.eng.locallib:org.eclipse.nebula.widgets.progresscircle_1.0.0.201804281520:1.0.0对应的POM文件(路径大概是C:\Users\username\.m2\repository\it\eng\locallib\org.eclipse.nebula.widgets.progresscircle_1.0.0.201804281520\1.0.0\org.eclipse.nebula.widgets.progresscircle_1.0.0.201804281520.pom),打开查看是否包含如下类似配置:
或者直接在<parent> <groupId>org.eclipse.nebula</groupId> <artifactId>progresscircle</artifactId> <version>1.0.0-SNAPSHOT</version> </parent><dependencies>节点里存在对org.eclipse.nebula:progresscircle的SNAPSHOT版本依赖。
解决方法
替换自动生成的POM
手动编写仅包含基本信息的POM文件,示例如下:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>it.eng.locallib</groupId> <artifactId>org.eclipse.nebula.widgets.progresscircle_1.0.0.201804281520</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>org.eclipse.nebula.widgets.progresscircle</name> </project>然后重新执行安装命令,指定手动编写的POM:
mvn install:install-file -Dfile=path-to-jarfile.jar -DpomFile=path-to-your-pom.xml在项目依赖中排除冲突依赖
如果不需要那个SNAPSHOT依赖,直接在项目的pom.xml里排除它:<dependency> <groupId>it.eng.locallib</groupId> <artifactId>org.eclipse.nebula.widgets.progresscircle_1.0.0.201804281520</artifactId> <version>1.0.0</version> <exclusions> <exclusion> <groupId>org.eclipse.nebula</groupId> <artifactId>progresscircle</artifactId> </exclusion> </exclusions> </dependency>安装缺失的SNAPSHOT依赖
如果确实需要这个依赖,找到对应的org.eclipse.nebula:progresscircle:pom:1.0.0-SNAPSHOT文件(或对应JAR),同样使用install:install-file命令安装到本地仓库。
内容的提问来源于stack exchange,提问作者saint
相关产品推荐
相关产品推荐

