Проблема с импортированными областными именами (проблема зависимости Spring Bom io)

Политика моей компании запрещает нам загружать сторонние артефакты из общедоступных репозиториев (maven_central, spring-io и т. Д.). Мы используем Nexus в качестве менеджера репозитория, в котором размещаются все артефакты, утвержденные политикой нашей компании.

Мы пытаемся использовать io-platform bom pom в нашем проекте для управления всеми зависимостями Spring.

Мы загрузили все бомбы и их зависимости в репозиторий нашей компании. Проверено также, все есть в репозиториях компании.
В моем файле settings.xml все репозитории (размещенные компанией) должным образом упоминаются. Но каким-то образом для проекта spring-framework-bom maven выполняет поиск только в централизованном режиме, даже если он отключен в файле settings.xml. В идеале в первую очередь следует искать в репозиториях нашей компании.

Мы получаем следующее исключение. Exception trace: org.apache.maven.reactor.MavenExecutionException: POM 'org.springframework:spring-framework-bom' not found in repository: Unable to download the artifact from any repository org.springframework:spring-framework-bom:pom:4.0.6.RELEASE from the specified remote repositories: central ( http://repo1.maven.org/maven2)

2 ответа

Решение

Эта проблема возникает, когда у вас есть pom/ артефакт, определенный с областью импорта в другом pom.

Импортированные зависимости в основном теряют информацию о хранилище, и они пытаются искать зависимости в maven central .

Хитрость заключается в том, чтобы отразить центральный репозиторий maven с помощью репозитория ваших компаний. Так что в случае импортированной зависимости он будет искать в хранилище компаний, а не по умолчанию maven central .

Надеюсь это поможет.

Это ошибка. Это предлагаемое решение:

IMO, использование заявленного обходного пути (добавление настраиваемого репозитория в POM с областью видимости == import), вероятно, является наиболее безопасным способом

Работает как минимум в Maven 3.3.9. Наверное, уже раньше.

Другие вопросы по тегам