У меня есть проект с большим количеством зависимостей во многих удаленных репозиториях, и даже эти зависимости иногда требуют других удаленных репозиториев.
Я хочу создать стабильную среду сборки и хочу, чтобы моя локальная установка Nexus передала все требования проекта, чтобы я мог воспроизвести сборки, не заходя в Интернет после того, как я все настроил один раз.
То есть мой .m2/settings.xml
будет содержать:
<mirrors>
<mirror>
<id>my.public</id>
<url>http://localhost:8081/nexus/content/groups/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
Но, конечно, этого недостаточно. Nexus не будет произвольно проксировать каждый запрос, который он получает от моей установки maven.
В настоящее время, насколько я понимаю, и вот как я заработал, для каждого удаленного репозитория, с которым я сталкиваюсь, я создаю прокси в Nexus и добавляю его в общедоступную группу.
В моем случае это 15 или 20 удаленных репозиториев. Большинство из них являются дополнительной зависимостью от моих пакетов, то есть не очевидно, что они мне нужны, пока я не запущу сборку maven и не нажму их. Я обнаружил, что до сих пор они в основном упоминались в родительских POM.
Мой вопрос: есть ли способ настроить Nexus, чтобы мне не нужно было добавлять каждый репозиторий вручную?
Когда я перечитываю свой вопрос, мне почти кажется, что я хочу настоящий HTTP-прокси, но в чем тогда смысл Nexus? Конечно, это риторический вопрос, но как мне решить эту проблему, не добавляя их все вручную?
Все, что я нашел в документации Nexus, это http://www.sonatype.com/books/nexus-book/reference/config-sect-custom.html:
... вы можете столкнуться с проектами, которые не могут получить артефакты из вашей локальной установки Nexus
и
... добавьте этот репозиторий в Nexus в качестве нового прокси-репозитория, а затем добавьте новый прокси-репозиторий в общедоступную группу