Gradle无法找到已存在文件:手动放置依赖后构建失败排查
路径格式错误
Gradle识别本地文件路径时,file:/开头的格式需要注意:Mac/Linux系统下正确的本地文件URL应该是file:///Users/...(三个斜杠),你当前的路径只有两个斜杠,可能导致Gradle无法正确映射到本地文件系统。另外检查路径中是否包含空格、特殊字符,这类字符需要转义才能被Gradle正确解析。文件权限不足
虽然stat命令能看到文件,但Gradle运行的用户可能没有读取该文件的权限。执行ls -l /Users/<me>/.m2/repository/prometheus/node_exporter/1.8.2/node_exporter-1.8.2.pom查看权限位,确保当前用户拥有读权限,必要时执行chmod +r <文件路径>调整权限。Gradle缓存干扰
Gradle会缓存依赖解析状态,即使你手动添加了POM文件,旧缓存可能仍标记该依赖缺失。可以尝试执行./gradlew clean build --no-build-cache跳过构建缓存,或者直接删除~/.gradle/caches目录后重新构建。依赖声明与POM不匹配
核对项目中node_exporter的依赖声明,确保groupId、artifactId、版本号和你放置的POM文件完全一致。比如POM内的<groupId>是否为prometheus,<artifactId>是否为node_exporter,版本是否是1.8.2,任何拼写或大小写错误都会导致Gradle匹配失败。本地仓库未配置
检查项目的build.gradle(或settings.gradle)中,repositories块是否包含mavenLocal():
repositories { mavenLocal() // 其他仓库配置... }
如果没有添加mavenLocal(),Gradle不会自动扫描~/.m2/repository目录。另外也可以检查~/.gradle/gradle.properties是否有覆盖本地仓库路径的配置,导致Gradle找不到你放置文件的位置。
内容的提问来源于stack exchange,提问作者A C

