«1. Обзор
В этом кратком обзоре основное внимание будет уделено тому, где Maven локально хранит все локальные зависимости — то есть в локальном репозитории Maven.
Проще говоря, когда мы запускаем сборку Maven, все зависимости нашего проекта (jar, jar плагинов, другие артефакты) сохраняются локально для последующего использования.
Также имейте в виду, что помимо локального репозитория этого типа, Maven поддерживает три типа репозиториев:
-
Локальный — расположение папки на локальной машине разработки. Центральный — репозиторий, предоставленный сообществом Maven. Удаленный — – Пользовательский репозиторий, принадлежащий организации
Теперь сосредоточимся на локальном репозитории.
2. Локальный репозиторий
Локальный репозиторий Maven — это каталог на локальном компьютере, где хранятся все артефакты проекта.
Когда сборка Maven выполняется, Maven автоматически загружает все jar-файлы зависимостей в локальный репозиторий.
Обычно этот каталог называется .m2.
Вот где находится локальный репозиторий по умолчанию в зависимости от ОС:
Windows: C:\Users\<User_Name>\.m2
Linux: /home/<User_Name>/.m2
Mac: /Users/<user_name>/.m2
~/.m2
И, конечно же, для Linux и Mac мы можем написать в сокращенной форме:
3. Пользовательский локальный репозиторий в settings.xml
Если репозиторий отсутствует в этом расположении по умолчанию, вероятно, это связано с какой-то уже существующей конфигурацией.
Этот файл конфигурации находится в каталоге установки Maven — в папке с именем conf — и называется settings.xml.
<settings>
<localRepository>C:/maven_repository</localRepository>
...
Вот соответствующая конфигурация, которая определяет местоположение нашего отсутствующего локального репозитория:
По сути, именно так мы можем изменить местоположение локального репо — и, конечно, если это местоположение изменится, мы ll больше не найдет репо в расположении по умолчанию.
Файлы, хранящиеся в предыдущем месте, не будут автоматически перемещены.
4. Передача местоположения локального репозитория через командную строку
mvn -Dmaven.repo.local=/my/local/repository/path clean install
Помимо настройки пользовательского локального репозитория в Maven settings.xml, команда mvn поддерживает свойство maven.repo.local, которое позволяет нам передавать местоположение локального репозитория как параметр командной строки:
Таким образом, нам не нужно изменять файл settings.xml Maven.
5. Заключение
В этом кратком руководстве мы рассмотрели настройки локального репозитория Maven по умолчанию.