Где лучше всего указать необходимые репозитории для проектов maven, pom.xml или settings.xml? Каковы плюсы и минусы каждого места? Что такое лучшая практика?
Я бы лично определил репозитории, требуемые конкретным проектом в проекте pom.xml
, потому что он сохраняет сборку переносимой. Файл settings.xml
должен использоваться только для личных или секретных вещей, на мой взгляд. Нет, на самом деле, просьба к пользователю добавить места в хранилище, даже если это правильно задокументировано, каким-то образом нарушает одну из функций maven (прозрачная обработка зависимостей), и мне не нравится эта идея.
Единственный "хороший" вариант использования, который я могу придумать для использования settings.xml
для работы с репозиториями, это когда у вас есть корпоративный репозиторий и вы хотите, чтобы Maven использовал этот репозиторий вместо общедоступных. Например, чтобы избежать подключений к любому общедоступному репозиторию, вы должны объявить корпоративный репозиторий как зеркало всех из них:
<settings>
...
<mirrors>
<mirror>
<id>proxy-of-entire-earth</id>
<mirrorOf>*</mirrorOf>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://repo.mycompany.com/proxy</url>
</mirror>
</mirrors>
...
</settings>