Подтвердить что ты не робот

Как указать альтернативное местоположение для папки .m2 или settings.xml на постоянной основе?

Я использую Maven 3.0, а расположение папки .m2 .m2.

Однако у меня нет доступа на запись к этой папке, но я хочу изменить местоположение репозитория с тем, которое определено в settings.xml.

Из-за ограниченного доступа я не могу редактировать settings.xml, чтобы изменить местоположение репозитория.

Как я могу переопределить значения моего settings.xml или изменить местоположение по умолчанию в папке .m2 без редактирования моего файла C:\Users\me\.m2\conf\settings.xml?

4b9b3361

Ответ 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_HOME/bin или M2_HOME/bin из PATH, поэтому mvn больше не разрешается.
  • Добавить папку в PATH (или использовать существующую)
  • В этой папке создайте файл mvn.bat с содержимым:

    call C:\your\path\to\maven\bin\mvn.bat --global-settings "C:\redirected\settings.xml" %*
    

Примечание. Если вы хотите, чтобы некоторые проекты вел себя по-другому, вы можете просто создать 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.