java - 执行 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
解决方案
我在运行 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>
推荐阅读
- ios - WKWebView 无法从沙箱加载 CSS 或 JS 或图像?
- html - html中的哪个标签
是? - python - Python正则表达式返回括号内字符串的位置
- java - 在这种情况下,当我尝试运行单个测试用例脚本时,为什么会打开多个浏览器实例?
- spring - 在 Spring Integration 中获取带有原始标题和附件的电子邮件
- c# - Excel:下载文件 LoadTestExcelAddIn.vsto 未成功
- c++ - 如何在 Code::blocks c++ 中使用 shell 命令?
- lldb - 使用 lldb 在主二进制文件中查找名为 '_OBJC_IVAR__$_DIRect._width' 的非外部符号?
- reactjs - 使用 React Router 处理多个路由
- openstack - 泊坞窗上的 OpenStack