Я получаю неожиданную ошибку ProxyAuthenticationError 407, устанавливающую ресурс из внутреннего репозитория nexus в мой локальный кеш .m2, даже если прокси-сервер не используется для него в моем settings.xml; т.е. я ожидаю, что он будет напрямую подключаться к внутреннему узлу без участия прокси.
Краткое описание настройки на локальной машине разработчика
Поскольку мы находимся за прокси-сервером; Я установил прокси в настройках. xml в противном случае maven не сможет установить из publi c 'central' репозитория.
Поскольку у нас также есть репозиторий inhouse-nexus для внутренних / частных ресурсов, настройки . xml имеет внутреннюю связь, введенную в элемент proxy.nonProxyHosts для обхода прокси для этого внутреннего хоста. локальный кеш либо из центрального (через прокси), либо из внутреннего (прямого) узла по мере необходимости; однако 10-й и последний проект в цепочке сборки терпит неудачу, когда он пытается разрешить wsdlArtifact для выполнения
Вывод журнала Maven (добавление -X и -e не предоставило никакой дополнительной информации)
[exec] [INFO] ------------------------------------------------------------------------
[exec] [INFO] BUILD FAILURE
[exec] [INFO] ------------------------------------------------------------------------
[exec] [INFO] Total time: 9.117 s
[exec] [INFO] Finished at: 2020-08-06T14:51:31+01:00
[exec] [INFO] ------------------------------------------------------------------------
[exec] [ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.4.3:wsdl2java (jra-generate-sources) on project abc-webservices-client: Error downloading wsdl artifact.: Could not transfer artifact groupid1:artefact-wsdl:wsdl:5.1.0-SNAPSHOT from/to artifact-repository (http://inhouse-nexus:8081/nexus/content/groups/public): HTTP proxy server authentication failed for http://inhouse-nexus:8081/nexus/content/groups/public/groupid1/artefact-wsdl/5.1.0-SNAPSHOT/artefact-wsdl-5.1.0-SNAPSHOT.wsdl 407 Proxy Authentication Required
[exec] [ERROR] groupid1:artefact-wsdl:wsdl:5.1.0-SNAPSHOT
[exec] [ERROR]
[exec] [ERROR] from the specified remote repositories:
[exec] [ERROR] inhouse-repository (http://inhouse-nexus:8081/nexus/content/groups/public, releases=true, snapshots=true),
[exec] [ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false)
Есть несколько вещей, которые не имеют смысла в этом
- Прокси-сервер обходит, поэтому он не должен пытаться go через прокси для inhouse-nexus
- Но при условии, что это происходит через прокси; почему он получает 407, когда указаны действительные имя пользователя и пароль?
- Как было сказано ранее - другие проекты 1-9 успешно устанавливают зависимости как из центрального, так и из внутреннего узла - так почему это происходит для этого ресурса wsdl ?
Я попытался изолировать проблему, с которой столкнулся maven, попытавшись воспроизвести, загрузив этот артефакт напрямую с помощью maven, как показано ниже, однако это, похоже, подбирает настройки. xml настройки прокси и загрузки wsdl без проблем:
mvn dependency:get -DgroupId=groupid1 -DartifactId=artefact-wsdl -Dversion=5.1.0-SNAPSHOT -Dpackaging=wsdl -DremoteRepositories=http://inhouse-nexus/nexus/content/groups/public -Ddest=\temp -Dtransitive=false
Идеи закончились; и я новичок как в Java, так и в Maven.
Любая помощь в понимании root причины этой проблемы будет очень принята; и если от меня потребуется дополнительная информация, дайте мне знать, и я обновлю вопрос.
настройки maven. xml для прокси
<proxy>
<id>httpproxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxyhost</host>
<port>8080</port>
<username>******</username>
<password>******</password>
<nonProxyHosts>inhouse-nexus</nonProxyHosts>
</proxy>
Фрагмент казни
<executions>
<execution>
<id>jra-generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/target/generated-sources/wsimport</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdlArtifact>
<groupId>groupid1</groupId>
<artifactId>artefact-wsdl</artifactId>
<version>5.1.0-SNAPSHOT</version>
</wsdlArtifact>
<extraargs>
<extraarg>-autoNameResolution</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>groupid1.abc.wsclient</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>