Описание
Я настраиваю сборку maven для выполнения в двух разных средах: первая на моем локальном хосте, а вторая внутри кластера докеров с использованием jenkins.
Обе сборки будут использовать один и тот же файл pom.xml.
Внутри файла pom.xml я ссылаюсь на частный репозиторий Nexus.
Хранилище Nexus находится внутри докерного кластера.
Оба URL-адреса, определенные внутри pom.xml, перенаправляют в один и тот же репозиторий Nexus.
Итак, чтобы получить доступ к репозиторию nexus с моего локального хоста, мы настроили наш частный DNS для разрешения «git.consignet.intranet» в репозитории nexus.
А затем, чтобы получить доступ к репозиторию Nexus внутри докера, я могу использовать только его сервисное имя "nexus-repo".
Соответствующее содержимое файла pom.xml показано ниже:
<project>
...
<repositories>
<repository>
<id>nexus-aws</id>
<name>Nexus Amazon</name>
<url>http://nexus.consignet.intranet/repository/maven-releases/</url>
</repository>
<repository>
<id>nexus-cluster</id>
<name>Nexus Inside Cluster</name>
<url>http://nexus-repo/repository/maven-releases/</url>
</repository>
</repositories>
...
</project>
Задача
При сборке на моем локальном хосте я не могу получить доступ к репозиторию, используя его сервисное имя внутри докера для разрешения хосту.
При сборке внутри jenkins (внутри контейнера Docker) я не могу получить доступ к нашему DNS-серверу для разрешения URL.
Maven output
Maven выдает следующее сообщение об ошибке:
[ERROR] Failed to execute goal on project DB1ConsignetWebService: Could not
resolve dependencies for project DB1ConsignetWebService:DB1ConsignetWebService:war:1.0-SNAPSHOT:
Failed to collect dependencies at Consignet:jaxb-api:jar:2.2.7-facets-1.0.5:
Failed to read artifact descriptor for Consignet:jaxb-api:jar:2.2.7-facets-1.0.5:
Could not transfer artifact Consignet:jaxb-api:pom:2.2.7-facets-1.0.5
from/to my-repo1 (http://nexus-repo/repository/maven-releases/): nexus-repo:
Unknown host nexus-repo -> [Help 1]
Заключительные замечания
В каждой среде можно разрешить только один URL:
Внутри среды разработки я просто смогу разрешить днс "git.consignet.intranet".
В среде сборки jenkins я просто смогу разрешить днс "nexus-repo".
Вопрос
Можно ли игнорировать хранилище в maven, если это неизвестный хост? Если да, то как я могу его настроить?