首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Maven: trustAnchors参数必须非空,并且必须为'parent.relativePath‘@ InvalidAlgorithmParameterException @不可解析的父POM

Maven: trustAnchors参数必须非空,并且必须为'parent.relativePath‘@ InvalidAlgorithmParameterException @不可解析的父POM
EN

Stack Overflow用户
提问于 2018-05-29 02:14:37
回答 2查看 10.1K关注 0票数 7

我是Maven和Spring的新手。

该项目在我的本地测试环境中运行,但不是在已部署的系统上运行。在部署的系统上:我得到了一个新安装的OpenSDK 10.0.1,Maven3.5.2的Ubuntu。我在一个不同的防火墙后面,有一个不同的keyStore和trustStore。

Maven吐了出来:

org.[%mything%].app:useraut:0.0.1-SNAPSHOT:的不可解析父POM无法将项目org.springframework.boot:spring-boot-starter-parent:pom:1.5.9.RELEASE从中心( java.security.InvalidAlgorithmParameterException:)传输到中心(

):https://repo.maven.apache.org/maven2:意外错误:java.lang.RuntimeException trustAnchors参数必须非空,并且'parent.relativePath‘指向没有本地POM @第14行,第10列-> Help 2

pom代码片段:

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

(未定义代理)

似乎我可以找到解决方案的想法:Error - trustAnchors parameter must be non-empty,但我不知道从哪里开始配置Spring或trustStore

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-02 06:42:22

根据我所发现的,Ubuntu Linux for OpenJDK Java9及更高版本的发行包中存在一个弱点。所以安装default-jdk可能会破坏一些东西。

引用自:(https://bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1768799) +其他证书更新。

请注意,重新安装default-jdk是可选的,并且可以继续使用openjdk-8。

解决方法:删除default-jdk,安装openjdk-8,删除openjdk-8,然后重新安装default-jdk:

sudo apt清除openjdk-默认java-common

sudo apt清除默认值-jdk java-common

sudo dpkg --purge --force-depends ca-certificates java

sudo apt安装openjdk-8-jre

sudo apt-get install ca-certificates java

sudo apt清除openjdk-8-jre

sudo apt install default-jdk

在此之后,我还发现我使用的Spring版本不能在Java 10.0.1上很好地运行,为此我又回到了Java 8.x。

票数 12
EN

Stack Overflow用户

发布于 2019-10-20 13:13:08

从本质上讲,它是关于ca-certificates java的。更令人沮丧的是,当您从linux发行版存储库之外获得JDK时。

这里我的线索来自:http://rabexc.org/posts/certificates-not-working-java

我修改了评论中的bash脚本

代码语言:javascript
复制
CACERTS="/home/user/cacerts"
cd /etc/ssl/certs
for file in *.pem; do
   echo "Importing $file..."
   openssl x509 -outform der -in "$file" -out /tmp/certificate.der
   keytool -import -alias "$file" -keystore $CACERTS \
           -file /tmp/certificate.der -deststorepass changeit -noprompt
done

修改第一行以适合您自己。我在debian上运行它,对于其他系统,您可能也需要更改第二行。

然后将"cacerts“文件复制到JDK中,该文件位于$JAVA_HOME/jre/lib/security/cacerts

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50571685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档