Вопрос:
Мне часто нужно запустить команду “mvn”:
mvn -f pom.xml clean install -Dmaven.test.skip=false —settings /Users/myhome/settings.xml -X -Djavax.net.ssl.trustStore=/Users/myhome/truststore.jks -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword=dummy -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -U
Поскольку мне нужно интегрироваться с различными другими доменами, поэтому в настоящее время каждый раз, когда я должен добавить свой сертификат в свой truststore.jks, чтобы предотвратить ошибки установления связи SSL.
Можно ли каким-либо образом настроить mvn для игнорирования ошибок SSL.
Лучший ответ:
Вы можете отключить проверку сертификатов SSL, добавив один или несколько из этих параметров командной строки:
- -Dmaven.wagon.http.ssl.insecure=true – разрешить использование проверенной проверки SSL для генерируемых пользователем сертификатов.
- -Dmaven.wagon.http.ssl.allowall=true – включить совпадение сертификата сервера X.509 с именем хоста. Если отключено, будет использоваться браузер, такой как проверка.
- -Dmaven.wagon.http.ssl.ignore.validity.dates=true – игнорировать проблемы с датами сертификата.
Официальная документация: http://maven.apache.org/wagon/wagon-providers/wagon-http/
Здесь oneliner для простого копирования и вставки:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
Ajay Gautam предположил, что вы также можете добавить выше в файл ~/.mavenrc, чтобы не указывать его каждый раз в командной строке:
$ cat ~/.mavenrc MAVEN_OPTS=»-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true» Ответ №1
Альтернатива, которая сработала для меня, – сказать Maven использовать http: вместо https: при использовании Maven Central, добавив следующее в settings.xml:
<settings> . . . <mirrors> <mirror> <id>central-no-ssl</id> <name>Central without ssl</name> <url>http://repo.maven.apache.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> . . . </settings>
Ваш пробег может меняться, конечно.
Ответ №2
Вы также можете настроить m2e для использования HTTP вместо HTTPS
force-m2e-to-use-http-instead-of-https
Ответ №3
Создайте папку ${USER_HOME}/.mvn и поместите в maven.config файл с именем maven.config.
Содержание должно быть:
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
Надеюсь это поможет.
Ответ №4
Не могу прокомментировать ответ выше, но:
- Вам необходимо maven.wagon.http.ssl.insecure чтобы включить maven.wagon.http.ssl.ignore.validity.dates или maven.wagon.http.ssl.allowall (см. wagon/blob/wagon-2.9/wagon-provider/wagon-http/src/main/java/org/apache/maven/wagon/provider/http/AbstractHttpClientWagon.java в строке 325).
- Флаги не работали с Maven 3.2.3, но хорошо с Maven 3.6.0.
- В Дженкинс я добавил их перед голами Мейвена.