Maven错误:(重复)java.security.InvalidAlgorithmParameterException:trustAnchors参数必须为非空

不得不再问一次。 有人认为这是一个重复的问题 ,已经回答并从列表中删除。

我正在使用maven(mvn)批处理命令与windows(不是m2e与eclipse)运行干净安装或解决依赖关系。 有时,当更改pom.xml时,有必要从我们的nexus服务器下载工件。 这对我来说已经很久了。

但是现在连接到nexus服务器(https,服务器使用公司拥有的证书)失败了“ java.security.InvalidAlgorithmParameterException:trustAnchors参数必须是非空的 ”我知道,我更改了Java版本。 但我很确定我维护cacerts密钥库的方式与之前版本相同。 (在租用时我比较了两个cacerts中的指纹;它们是相同的)。

运行命令“ mvn -s -Djavax.net.debug = all -Djava.net.ssl.trustStore =”C:/Programme/Java/jre1.8.0_102/lib/security/cacerts“-Djavax.net.ssl .trustStorePassword = changeit dependency:resolve “,ssl-trace说:

keyStore is : keyStore type is : jks keyStore provider is : init keystore init keymanager of type SunX509 trustStore is: No File Available, using empty keystore. trustStore type is : jks trustStore provider is : init truststore 

即使在命令中指定密钥库的路径和密码,ssl跟踪中的答案也是找不到它。

我不知道我可能会改变什么来解决这个问题。 我更改了Windows PATH-Statement,但这与前面描述的命令无关。 任何提示都表示赞赏

我有同样的问题,我花了一天时间来解决它。 这可能是您在错误堆栈中看到的java相关问题。 报到:

/ etc / ssl / certs / java用于cacerts文件。
1)如果您在此处没有此文件,则说明您收到此错误的原因
2)如果你在这里有这个文件,这意味着这可能不是一个有效的cacerts文件。

如果您愿意,可以使用以下方式更新它:
sudo apt-get install –reinstall ca-certificates
如果它现在有效,那么完美(在我的情况下它不起作用)

所以要解决这个问题:

  1. 直接从oracle下载open-jdk8(在我的例子中)
  2. 解压缩tar.gz文件
  3. jre / lib / security下找到新的有效cacerts文件
  4. 将此文件复制到/ etc / ssl / certs / java (如果是这种情况,则删除旧文件)

最后运行导致你出现此错误的命令,希望它消失了! 希望这有帮助。

干杯

今天我找到了原因:

回到过去,我曾经把“WINDOWS”环境变量MAVEN_OPTS设置为“setx MAVEN_OPTS”-Djavax.net.ssl.trustStore ….“。

此处指定的路径不再存在。

似乎这个设置甚至取代了我的问题中显示的请求。 我认为这种行为至少是意料之外的,但无论如何。 当我修复环境变量(指向新路径;但我还是要删除它)时,mvn-requests工作正常。

环境中的无效参数未被命令行上的trustStore设置推翻的事实可能是由于命令行中存在拼写错误 。 它说:

 -Djava.net.ssl.trustStore=... 

但这应该是:

 -Djavax.net.ssl.trustStore=...