Shrinkwrap не загружает зависимость из локального репозитория, хотя она существует

У меня есть задание Дженкинса, которое запускает mvn clean verify проект. Но некоторые интеграционные тесты терпят неудачу из-за 2 зависимостей, которые не могут быть разрешены преобразователем Shrinkwrap.

Сервер Jenkins и подчиненные устройства находятся во внутренней сети, которая не позволяет получить доступ к центральному репозиторию. Но у нас есть репозиторий Nexus со всеми необходимыми пакетами.

При запуске задания Jenkins оно завершается с ошибкой UNSTABLE и двумя неудачными интеграционными тестами. Оба сообщения выглядят так:

17 ноября 2017 г., 13:02:25 datatype-jsr310-2.7.4.pom из https://repo.maven.apache.org/maven2 /. Причина: org.eclipse.aether.transfer.ArtifactTransferException: не удалось передать артефакт com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 из/в центральный (https://repo.maven.apache.org/maven2): ошибка при передаче файла: repo.maven.apache.org 17 ноября 2017 г. 13:02:25 org.jboss.shrinkwrap.resolver.impl.maven.logging.LogTransferListener transferFailed ПРЕДУПРЕЖДЕНИЕ: не удалось загрузить com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.7.4/jackson-datatype-jsr310- 2.7.4.pom из http://repo1.maven.org/maven2/. Причина: org.eclipse.aether.transfer.ArtifactTransferException: не удалось передать артефакт com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 из/в хранилище (http://repo1.maven.org/maven2): ошибка при передаче файла: repo1.maven.org

Чтобы решить эту проблему, я добавил этап предварительной сборки для загрузки артефактов. Логи показывают, что артефакты скачались:

Разрешение артефакта com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 Разрешенный артефакт com.fasterxml.jackson.datatype:jackson-datatype-jsr310:pom:2.7.4 из хранилища (релизы+моментальные снимки)

Я также зарегистрировался вручную: файлы pom находятся в локальном репозитории.

Почему он не может разрешить артефакты, которые явно находятся внутри локального репозитория?


person Community    schedule 17.11.2017    source источник


Ответы (2)


Наконец я нашел способ. Я предоставляю файл settings.xml и устанавливаю цель «csettings.xml». Затем я передаю аргумент целям и параметрам сборки: "-Dorg.apache.maven.user-settings=$WORKSPACE/csettings.xml"

person Community    schedule 22.11.2017

Кроме того, если кому-то нужно объединить два файла настроек, это можно сделать, установив глобальные настройки и пользовательские настройки.

-Dorg.apache.maven.global-settings=global-settings.xml -Dorg.apache.maven.user-settings=user-settings.xml 

В моем случае это было полезно в Jenkins для хранения конфигурации в глобальных настройках и учетных данных для серверов в пользовательских настройках, которые были сохранены как секрет.

person Bartek K    schedule 09.01.2020