Maven с HTTPS-репозиторием и Apache Wagon, не работающими по доверенности
Мы разрабатываем приложение Maven с использованием Eclipse (версия 12.18), и некоторые библиотеки находятся в безопасном хранилище компании.
Я настроил хранилище в файле настроек Maven следующим образом:
<repositories>
<repository>
<id>MyRepository</id>
<name>MyRepository</name>
<url>https://companyUrl/repository/maven-3rdparty/</url>
<releases>
<enabled>true</enabled>
</releases>
<layout>default</layout>
</repository>
</repositories>
Кроме того, поскольку наше интернет-соединение находится за прокси, я настроил параметры прокси.
В приложении, если я пытаюсь разрешить зависимости, используя опцию "maven update", я не получаю никакой ошибки, просто он не загружает файл jar.
Если я использую опцию "maven install", я получаю эту ошибку:
Failed to execute goal on project MyProject: Could not resolve dependencies for project my.project:MyProject:jar:0.0.1: Failed to collect dependencies at externalLibrary:jar:1.0: Failed to read artifact descriptor for externalLibrary:jar:1.0: Could not transfer artifact externalLibrary:pom:1.0 from/to MyRepository (https://companyUrl/repository/maven-3rdparty/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
Я пытался избежать проверки SSL-сертификата с помощью Apache Wagon, но мне это не удалось. Вот как я пытался:
1- Сначала я настроил pom.xml MyProject следующим образом:
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http-lightweight</artifactId>
<version>3.3.2</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>initialize</phase>
<configuration>
<properties>
<property>
<name>maven.wagon.http.ssl.insecure</name>
<value>true</value>
</property>
<property>
<name>maven.wagon.http.ssl.allowall</name>
<value>true</value>
</property>
<property>
<name>maven.wagon.http.ssl.ignore.validity.dates</name>
<value>true</value>
</property>
</properties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
2- Поскольку первый вариант не работает, я попытался загрузить свойства вагона в аргументах виртуальной машины в опции "Maven Build...":
-Dmaven.wagon.http.ssl.insecure=true
-Dmaven.wagon.http.ssl.allowall=true
-Dmaven.wagon.http.ssl.ignore.validity.dates=true
Ни один из этих вариантов не был успешным.
В качестве последнего варианта я установил SSL-сертификат хранилища в CACERTS моей установки Java, и, очевидно, это сработало.
НО, мы хотели бы иметь возможность настроить хранилище без необходимости установки SSL-сертификата.
Что я делаю неправильно? Нужна ли дополнительная конфигурация с Apache Wagon? Я что-то пропустил?
Спасибо за чтение.