You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04 LTS下Maven执行archetype:generate无法下载插件求助

解决Ubuntu 18.04下Maven执行mvn archetype:generate的证书与反射警告问题

我来帮你搞定这个问题,你碰到的情况其实是Ubuntu 18.04里OpenJDK搭配Maven时的常见问题,分为两个部分:一个是Guice库的非法反射访问警告,另一个是导致插件下载失败的核心CA证书配置异常(就是报错里的trustAnchors parameter must be non-empty)。下面一步步来解决:

一、先修复Java CA证书配置(核心问题)

通过apt安装的OpenJDK经常会出现证书存储路径不对的情况,导致Java没法验证HTTPS仓库的证书,直接让Maven没法下载插件。解决步骤:

  1. 先确认你的Java安装路径,执行这条命令:
update-alternatives --list java

输出一般类似/usr/lib/jvm/java-8-openjdk-amd64/bin/java或者/usr/lib/jvm/java-11-openjdk-amd64/bin/java,记下来这个路径里的/usr/lib/jvm/java-xxx-openjdk-amd64部分。

  1. 先备份原来的Java证书文件(以防万一):
# 把下面的java-8-openjdk-amd64换成你自己的路径
sudo cp /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts.bak
  1. 重新安装并同步系统CA证书到Java:
sudo apt-get install --reinstall ca-certificates-java

这个包会自动把系统的可信证书同步到Java的cacerts文件里,解决证书验证失败的问题。

  1. 现在再试试执行mvn archetype:generate,应该就能正常下载插件,不会再出现那些“Failed to retrieve plugin descriptor”的错误了。

二、消除Guice反射警告(可选,不影响功能)

那个反射警告是因为Maven自带的Guice版本和Java 9+的模块系统不兼容,虽然不影响使用,但看着闹心的话可以用下面两种方法解决:

方法1:升级Maven到新版本

新版本的Maven(比如3.6.3及以上)已经修复了这个兼容问题,手动安装步骤:

# 下载Maven 3.8.6(你也可以换成最新稳定版)
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
# 解压到/usr/local目录
sudo tar -zxvf apache-maven-3.8.6-bin.tar.gz -C /usr/local
# 配置环境变量,编辑~/.bashrc文件
echo 'export M2_HOME=/usr/local/apache-maven-3.8.6' >> ~/.bashrc
echo 'export PATH=$M2_HOME/bin:$PATH' >> ~/.bashrc
# 让环境变量生效
source ~/.bashrc
# 验证版本是否更新成功
mvn -v

方法2:添加JVM参数临时消除警告

如果不想升级Maven,每次执行命令时加上下面的参数就行:

mvn archetype:generate --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED

这个参数允许Guice进行必要的反射访问,直接消除警告。

内容的提问来源于stack exchange,提问作者Alexandr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:11:09