Почему Maven устанавливает в неправильном месте? - PullRequest
3 голосов
/ 27 августа 2010

Я пытаюсь запустить установку mvn, она прекрасно компилируется, но по какой-то причине maven пытается установить в это место:

[INFO] Installing /home/username/workspace/projectname/pom.xml to 
/home/username/workspace/projectname/?/.m2/repository/artifactname/artifact.pom

Обратите внимание, местоположение имеет?в этом.Это место действительно должно быть домашним каталогом / .m2.Любая идея, что вызывает его установку в неправильном месте?

Редактировать: Выполнение mvn --help :ffective-settings дает:

  <localRepository xmlns="http://maven.apache.org/SETTINGS/1.0.0">
      /home/username/workspace/projectname/?/.m2/repository
  </localRepository>

Интересно, что если я запустите mvn --help: эффективных настроек из другого каталога, скажем: / tmp, он дает:

  <localRepository xmlns="http://maven.apache.org/SETTINGS/1.0.0">
      /tmp/?/.m2/repository
  </localRepository>

Ответы [ 2 ]

9 голосов
/ 27 августа 2010

Пожалуйста, поставьте следующую цель в вашем проекте:

mvn help:effective-settings

И проверьте значение localRepository (и обновите вопрос значением).

Продолжение: Хорошо, пока все согласованно. Далее ...

Значение по умолчанию localRepository предполагается равным ${user.home}/.m2/repository. Дважды проверьте, что вы не переопределяете это в:

  • settings.xml из Maven: $M2_HOME/conf/settings.xml
  • settings.xml из пользовательской установки: ${user.home}/.m2/settings.xml

Если нет, проверьте фактическое значение ${user.home} (выполните следующую команду в вашем проекте):

mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=user.home

Если вы не получили ожидаемое значение, проверьте фактическое значение %USERPROFILE%, если вы используете Windows.

Продолжение 2: Я не уверен, как именно ${user.home} оценивается точно под Linux, но этот предыдущий вопрос Java: System.getProperty («user.home») возвращает «? « описывает то же странное поведение - и обходной путь: с использованием 64-битного JDK в 64-битной системе .

Какой JDK вы используете именно? На какой платформе? Не могли бы вы оказаться в такой же ситуации (в этом случае, я действительно думаю, что это ошибка JDK, 32-битный JDK должен возвращать правильное значение и в 64-битной системе).

Продолжение 3: На самом деле это Идентификатор ошибки: 6972329 (что не подтверждается как ошибка JDK, это может быть системная ошибка).

0 голосов
/ 27 августа 2010

Проверьте значение localRepository в settings.xml .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...