Команда Maven, чтобы определить, какой файл settings.xml использует Maven.
-
12-09-2019 - |
Вопрос
Как использовать командную строку maven, чтобы определить, какой файл settings.xml получает Maven?
Решение
Запустите maven с опцией -X (отладка) и проверьте начало вывода.Должно быть что-то вроде этого:
...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml
[DEBUG] Reading user settings from c:\....\.m2\settings.xml
[DEBUG] Using local repository at C:\....\repository
...
(Исходные имена каталогов мною удалены)
Другие советы
Ваш комментарий к (правильному) ответу cletus подразумевает, что задействовано несколько файлов настроек Maven.
Maven всегда использует один или два файла настроек.Глобальные настройки, определенные в (${M2_HOME}/conf/settings.xml), необходимы всегда.Файл пользовательских настроек (определенный в ${user.home}/.m2/settings.xml) не является обязательным.Любые настройки, определенные в настройках пользователя, имеют приоритет над соответствующими глобальными настройками.
Вы можете переопределить расположение глобальных и пользовательских настроек из командной строки. В следующем примере глобальные настройки будут установлены на c:\global\settings.xml и пользовательские настройки для c:\user\settings.xml:
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
В настоящее время не существует свойства или средств, позволяющих определить, какие пользовательские и глобальные файлы настроек использовались с Maven.Чтобы получить доступ к этим значениям, вам придется изменить MavenCli и/или DefaultMavenSettingsBuilder, чтобы добавить местоположения файлов в разрешенный объект Settings.
Вы можете использовать плагин помощи maven чтобы сообщить вам содержимое ваших пользовательских и глобальных файлов настроек.
mvn help:effective-settings
попросит maven выплюнуть объединенные глобальные и пользовательские настройки.
Это файл конфигурации для Maven.Его можно указать на двух уровнях:
Уровень пользователя.Этот файл настройки.
NOTE: This location can be overridden with the CLI option: -s /path/to/user/settings.xml
Глобальный уровень.Этот файл настройки.Обычно это предусмотрено в $ {maven.home}/consf/settings.xml.
NOTE: This location can be overridden with the CLI option: -gs /path/to/global/settings.xml
А M2_HOME
переменная среды для глобальной.Видеть Справочник по настройкам:
А
settings
элемент вsettings.xml
Файл содержит элементы, используемые для определения значений, которые настраивают выполнение Maven различными способами, такие какpom.xml
, но не должно быть связано с каким -либо конкретным проектом или распространяется на аудиторию.К ним относятся значения, такие как локальное местоположение репозитория, альтернативные серверы удаленного репозитория и информация об аутентификации.Есть два места, где может жить файл настройки.
- Установка Maven:
$M2_HOME/conf/settings.xml
- Пользовательская установка:
${user.home}/.m2/settings.xml
Быстрый и грязный метод определения того, использует ли Maven желаемый файл settings.xml, сделает его XML недействительным и запустит какую-нибудь безопасную команду maven, для которой требуется файл settings.xml.
Если он читает этот settings.xml, то Maven сообщает об ошибке: "Ошибка чтения settings.xml..."