maven从远程仓库下载依赖包失败(因权限问题导致)
阅读原文时间:2023年08月22日阅读:3

在学习rocketMq时,编译官方提供的可视化项目:rocketmq-dashboard,频频失败,报以下错误

Could not transfer artifact org.apache.rocketmq:rocketmq-namesrv:pom:4.9.3 from/to mirror (https://maven.aliyun.com/****/groups/public): /Users/****/repository/org/apache/rocketmq/rocketmq-namesrv/4.9.3/rocketmq-namesrv-4.9.3.pom.part.lock (No such file or directory)

我遇到的是权限问题,不过还是推荐你先看看是不是下面这个文档里所出现的问题

彻底解决Could not transfer artifact org.apache.maven.plugins问题_天青色.等烟雨的博客-CSDN博客

如果上面的解决不了,那么在需要下载jar的项目下用命令的方式验证一下

mvn clean compile -Dmaven.test.skip=true -e -U

如果也出现了failed to create parent ,那么你也是权限的问题。简单的说就是,当前用户无法在root权限的目录下新建文件,确认一下当前用户是否拥有jar包的目录或者上级目录的权限

解决办法推荐以下两种

一是直接在命令上加上了sodu,即采用root权限

sudo mvn clean compile -Dmaven.test.skip=true -e -U

二是将对应的文件或者文件夹(比如整个maven仓库),修改为当前用户的权限

sudo chown -R $(whoami) 你的文件夹/

第一时间,以为是阿里云仓库没有这个版本的jar包,于是当时一度在折腾maven源的配置,想着优先从阿里云下载,然后从中央仓库repo1或者repo2下载,结果从repo2也是这个错误

后来在aliyun的官网上发现存在这个版本的jar包,这下就肯定了一定是配置的问题

然后看到了很多和下面这个文档一样的解决思路

彻底解决Could not transfer artifact org.apache.maven.plugins问题_天青色.等烟雨的博客-CSDN博客

大致以下几类:

  1. Idea maven版本检查一致

  1. 因为ssl证书问题

即在importing和runner的vm option 添加以下的代码,跳过https

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true -DarchetypeCatalog=internal

  1. 因为本地存在lastUpdated之类的文件

但是我不属于这种情况,所以也不需要删除重下,况且我每次尝试都是删除整个文件夹再试


搭嘎,口头哇路。 因为以上的几种方案对我毫无作用

所以,我尝试获取更多的信息,之前都是在idea集成的maven侧边栏点刷新,现在我决定用命令试一试

mvn clean compile -Dmaven.test.skip=true -e -U

看到上面黄色框内的内容,我突然意识到有可能是权限的问题,我确认了一下路径

虽然我的maven目录是在User下,但是里面的jar包路径有很多都是root创建的(我也不知道怎么来的),但问题定位到了就好说了,搞半天不是maven的问题,而是权限的问题。

既然知道了是权限导致的,那么无论是将文件夹赋予当前用户权限,还是直接使用sudo都可以,我这边就直接使用sudo处理了。