Проблема с импортированными областными именами (проблема зависимости 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. Наверное, уже раньше.