Как указать альтернативное местоположение для папки .m2 или settings.xml на постоянной основе?
Я использую Maven 3.0, а расположение папки .m2
.m2
.
Однако у меня нет доступа на запись к этой папке, но я хочу изменить местоположение репозитория с тем, которое определено в settings.xml
.
Из-за ограниченного доступа я не могу редактировать settings.xml
, чтобы изменить местоположение репозитория.
Как я могу переопределить значения моего settings.xml
или изменить местоположение по умолчанию в папке .m2
без редактирования моего файла C:\Users\me\.m2\conf\settings.xml
?
Ответы
Ответ 1
Вам нужно добавить эту строку в settings.xml
(или раскомментировать, если она уже есть).
<localRepository>C:\Users\me\.m2\repo</localRepository>
Также возможно запускать ваши команды с mvn clean install -gs C:\Users\me\.m2\settings.xml
- этот параметр заставит maven использовать другой settings.xml
, чем стандартный (который находится в $HOME/.m2/settings.xml
)
Ответ 2
Забавно, как другие ответы игнорируют тот факт, что вы не можете писать в этот файл...
Есть несколько обходных решений, которые приходят мне на ум, которые могут помочь использовать произвольные C:\redirected\settings.xml
и использовать команду mvn
как обычно с радостью после этого.
mvn
псевдоним
В оболочке Unix (или в Cygwin) вы можете создать
alias mvn='mvn --global-settings "C:\redirected\settings.xml"'
поэтому, когда вы вызываете mvn blah blah
из любой точки, конфигурация автоматически выбирается.
См. Как создать псевдоним в cmd
?, если вы этого хотите, но не имеете оболочки Unix.
mvn
обертка
Настройте среду таким образом, чтобы mvn
был разрешен оболочкой script при вводе в командной строке:
Примечание. Если вы хотите, чтобы некоторые проекты вел себя по-другому, вы можете просто создать mvn.bat
в той же папке, что и pom.xml
, поэтому при запуске plain mvn
он разрешается локальному.
Используйте where mvn
в любое время, чтобы проверить, как он будет разрешен, первый будет запущен при вводе mvn
.
mvn.bat
hack
Если у вас есть доступ на запись к C:\your\path\to\maven\bin\mvn.bat
, отредактируйте файл и добавьте set MAVEN_CMD_LINE_ARG
в часть :runm2
:
@REM Start MAVEN2
:runm2
set MAVEN_CMD_LINE_ARGS=--global-settings "C:\redirected\settings.xml" %MAVEN_CMD_LINE_ARGS%
set CLASSWORLDS_LAUNCHER=...
mvn.sh
hack
Для полноты вы можете изменить оболочку C:\your\path\to\maven\bin\mvn
script, изменив команду exec "$JAVACMD"
${CLASSWORLDS_LAUNCHER} "[email protected]"
часть
${CLASSWORLDS_LAUNCHER} --global-settings "C:\redirected\settings.xml" "[email protected]"
Предложение /Rant
Как человек в ИТ, смешно, что у вас нет доступа к вашей собственной домашней папке, для меня это представляет собой некомпетентность от компании, в которой вы работаете: это эквивалентно найму кому-то для разработки программного обеспечения, но не предоставляя даже возможность использовать ничего, кроме notepad.exe или Microsoft Word, для редактирования исходных файлов. Я предлагаю обратиться в службу поддержки или администратора и запросить доступ на запись по крайней мере к этому конкретному файлу, чтобы вы могли изменить путь к локальному репозиторию.
Отказ от ответственности. Ни один из них не проверен для этого конкретного варианта использования, но я успешно использовал все ранее для другого программного обеспечения.
Ответ 3
Ниже приведена конфигурация программного обеспечения Maven по умолчанию в MAVEN_HOME\conf\settings.xml.
<settings>
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
Добавьте строку ниже этой конфигурации, чтобы выполнить требование.
<localRepository>custom_path</localRepository>
Пример: <localRepository>D:/MYNAME/settings/.m2/repository</localRepository>
Ответ 4
Вы можете изменить расположение каталога .m2 по умолчанию в файле m2.conf. Он находится в каталоге установки maven.
Добавить изменить эту строку в
m2.conf
set maven.home C:\Users\me\.m2
Ответ 5
Никто не предлагал этого, но вы можете использовать аргумент командной строки -Dmaven.local.repo
, чтобы изменить местоположение репозитория. Кроме того, согласно документации settings.xml
, вы можете установить -Dmaven.home
, где он ищет файл settings.xml
.
См. документацию Settings.xml.