Загружать артефакт из репозитория maven, если он не подключен к VPN компании - PullRequest
1 голос
/ 08 января 2020

В продолжение моего предыдущего вопроса не удалось найти репозиторий артефактов в maven , я могу найти артефакт в репозитории Maven, добавив соответствующий URL-адрес артефакта в pom. xml

enter image description here

Я все еще не могу загрузить артефакт из хранилища Maven.

enter image description here

  • Использование моей компании предоставило настройки maven. xml, который использует репозиторий моей компании, когда я не подключен к VPN моей компании, а затем импортирую maven, он не работает с ошибкой ниже.

Could not resolve dependencies for project com.indore:galaxy:jar:1.0-SNAPSHOT: Failed to collect dependencies at org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:7.4.1: Failed to read artifact descriptor for org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:7.4.1: Could not transfer artifact org.elasticsearch.client:elasticsearch-rest-high-level-client:pom:7.4.1 from/to nexus (http://nexus.dev.<my-company-name>.com/nexus/content/groups/public): nexus.dev.<my-company-name>.com: nodename nor servname provided, or not known:

enter image description here

Так может кто-нибудь сказать мне, что мне не хватает?

Редактировать 1

Как указано @Opster Elasticsearch Ninja Я предоставил тег зеркала в моих maven settings.xml

<mirror>
            <id>nexus</id>
            <mirrorOf>*</mirrorOf>
            <url>http://nexus.dev.<my-company>.com/nexus/content/groups/public</url>
</mirror>

И, настройки Intellij maven это:

enter image description here

1 Ответ

1 голос
/ 07 марта 2020

Причина возникновения:

Даже если вы указали в своем хранилище publi c. xml, Intellij проверяет настройки этих репозиториев, определенные в настройках maven. xml, подробнее объясняется в этом ответе SO.

Теперь Поскольку вы используете установленную версию Maven, настройки. xml, присутствующий в папке maven .m2, используется IntelliJ. И согласно вашему тегу mirror для всех репозиториев (используется подстановочный знак *) используется репозиторий вашей компании.

Если в это время вы не подключались к корпоративной VPN, Maven не может подключиться к вашему хранилищу, поэтому выдает ошибку имя узла или имя сервера указаны или не известны: , поэтому не может чтобы загрузить артефакт из хранилища, но когда хранилище достижимо, оно загружает артефакты.

Подробнее о теге зеркала и объяснении значения * mirrorof описано в this Ответ SO .

Решение:

  1. Просто измените значение тега mirrorOf с * только на спецификацию c id вашей компании. Сделки рЕПО.

  2. Если вы не знаете специфику c id репо вашей компании, просто прокомментируйте тег mirror и попробуйте снова, maven должен подключиться к публикации. c репо, указанное в вашем pom.xml и загрузите артефакт.

...