Maven 3搭配JDK 8执行任务失败,报access_denied错误求助
mvn clean时插件依赖解析失败的问题 我之前维护老项目(Java 8 + Maven 3.x)时也碰到过几乎一样的插件解析问题,结合你的环境和报错信息,整理几个实用的排查和解决步骤:
1. 确认核心环境配置是否正确
先确保你的环境变量没有配置偏差:
- 执行
java -version,确认输出是1.8.0_161 - 执行
mvn -v,确认Maven版本是3.5.3,且它关联的Java环境和上面的版本一致
如果这里出现版本不匹配,先调整JAVA_HOME和MAVEN_HOME的配置,确保Maven调用的是正确的Java 8版本。
2. 清理本地Maven仓库的损坏缓存
报错里提到无法读取maven-clean-plugin:2.5的artifact描述符,很大概率是本地仓库里这个插件的缓存文件损坏了。你可以手动清理:
- 找到本地Maven仓库默认路径(一般是
~/.m2/repository,Windows下是C:\Users\你的用户名\.m2\repository) - 删除
org/apache/maven/plugins/maven-clean-plugin/2.5这个文件夹 - 重新执行
mvn clean,让Maven重新下载完整的插件依赖
3. 检查Maven的镜像配置
你的报错里出现了central-no-ssl这个仓库id,可能是你的settings.xml(在~/.m2/或者MAVEN_HOME/conf/下)里配置的镜像有问题:
- 打开
settings.xml,找到<mirrors>节点 - 检查镜像的url是否正确,官方central仓库的地址是
https://repo.maven.apache.org/maven2/ - 如果是内网环境,确认镜像地址是公司内部合法的Maven仓库,且SSL证书可信(如果用https的话)
- 也可以临时换成国内镜像(比如阿里云)测试,配置示例:
<mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror>
4. 强制更新依赖元数据
有时候本地的依赖元数据过期,也会导致解析失败。可以执行带强制更新参数的命令:
mvn clean -U
-U参数会让Maven强制更新所有依赖的快照和发布版元数据,避免使用本地过期缓存。
5. 排查网络和代理问题
如果是公司内网环境,可能需要配置Maven代理:
- 在
settings.xml的<proxies>节点下添加代理配置,示例:
<proxy> <id>company-proxy</id> <active>true</active> <protocol>http</protocol> <host>你的代理地址</host> <port>代理端口</port> <!-- 需要认证的话添加以下内容 --> <username>代理用户名</username> <password>代理密码</password> </proxy>
另外,也可以试试切换网络(比如用手机热点),排除公司防火墙或VPN的影响。
附你的报错信息:
[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central-no-ssl (https://repo.maven.apa...
内容的提问来源于stack exchange,提问作者piy26

