Maven: параметр trustAnchors должен быть непустым и 'parent.relativePath' @ InvalidAlgorithmParameterException @ неразрешимый родительский POM

Я новичок в Maven и Spring.

Проект работает в моей локальной тестовой среде, но не в развернутой системе. В развернутой системе: я получил только что установленную Ubuntu с OpenSDK 10.0.1, Maven 3.5.2. Я за другим брандмауэром и имею другое хранилище ключей и хранилище доверия.

Мейвен выплевывает:

Неразрешимый родительский POM для org.[%mything%].app:useraut:0.0.1-SNAPSHOT: не удалось передать артефакт org.springframework.boot:spring-boot-starter-parent:pom:1.5.9.RELEASE из/в центральный ( https://repo.maven.apache.org/maven2): java.lang.RuntimeException: Неожиданная ошибка: java.security.InvalidAlgorithmParameterException: параметр trustAnchors должен быть непустым, а «parent.relativePath» не указывает на локальный POM в строке 14, столбце 10 -> [Справка 2]

фрагмент помпы:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

(прокси не определен)

Кажется, я могу найти идеи для решения: пусто Но я понятия не имею, с чего начать настройку Spring, Maven или trustStore


person Tormod    schedule 28.05.2018    source источник
comment
Я также боролся с этим с 24 часов. Только что наткнулся на комментарий @jsn здесь - stackoverflow.com/questions/6784463/. Я подумал, что это может быть полезно для вас.   -  person Ravindra Gullapalli    schedule 29.05.2018
comment
Убедитесь, что у вас есть резервная копия существующего файла cacerts, который может быть полезен в будущем, если вы столкнетесь с какой-либо другой проблемой.   -  person Ravindra Gullapalli    schedule 29.05.2018


Ответы (2)


Согласно тому, что я обнаружил, в дистрибутиве Ubuntu Linux есть слабость для OpenJDK Java 9 и выше. Поэтому установка 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 purge openjdk-default java-common

sudo apt purge default-jdk java-common

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

sudo apt установить openjdk-8-jre

sudo apt-get установить ca-сертификаты-java

sudo apt очистить openjdk-8-jre

sudo apt установить default-jdk

После этого я также узнал, что версия Spring, которую я использовал, плохо работала на Java 10.0.1, поэтому для этой цели вернемся к Java 8.x.

person Tormod    schedule 01.06.2018

В основном речь идет о ca-certificates-java. Еще больше расстраивает, когда вы получаете JDK вне репозиториев дистрибутива Linux.

Здесь я получил ключ от: http://rabexc.org/posts/certificates-not-working-java

Я изменил скрипт bash в комментарии

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.

person user3121260    schedule 20.10.2019