首页 > 解决方案 > 执行 mvn clean package 时出错:InvalidAlgorithmParameterException:trustAnchors 参数必须为非空

问题描述

我的 Ubuntu 17.10 上的 Maven 存在很大问题。在我的 pom.xml 中,我使用了 maven-assembly-plugin。
每次我mvn clean package在项目的根目录中运行 Maven 时,执行都会失败,并且在 Stack-trace 中我可以找到错误消息

插件 org.apache.maven.plugins:maven-clean-plugin:2.5 或其依赖项之一无法解析:无法读取 org.apache.maven.plugins:maven-clean-plugin:jar:2.5 的工件描述符:无法将工件 org.apache.maven.plugins:maven-clean-plugin:pom:2.5 从/传输到中央(https://repo.maven.apache.org/maven2):java.lang.RuntimeException:意外错误: java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须为非空

我已经在我的 Ubuntu 上重新安装了 Maven,并在 Google 上搜索了好几个小时。Maven/Java 似乎无法通过 SSL 连接到 Maven Central。我找到了一种使用 Maven 并忽略 SSL 的方法,mvn clean package -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true但这也不起作用。

该错误发生在我所有的 Maven 项目中,所以我认为问题不在 pom.xml 中。

带有 stacktrace 的调试日志在Pastebin上

编辑:我检查了我的 cacerts 并找到了用于验证 Maven Central 证书的数字证书的 .pem

在此处发布屏幕截图!

标签: javamaven

解决方案


我在运行 maven clean 时遇到了同样的问题,只是后来发现是我的组织防火墙导致从 AbstractHTTPClient 抛出 ACCESS_DENIED。如果您在公司防火墙后面运行,您可以使用防火墙设置更新您的 settings.xml。

检查您是否在公司代理后面运行。如果是,那么您可能需要在 settings.xml 中添加您组织的代理设置。

<settings>
  <proxies>
   <proxy>
      <id>SOME ID</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>PROXY_HOST</host>
      <port>PROXY_PORT</port>
    </proxy>
  </proxies>
</settings>

推荐阅读