2013-07-12 2 views
9

Я работаю с коллегой по проблеме, с которой я столкнулся в новом проекте, к которому я только что присоединился. Короче говоря, maven не строит мой файл .war. Когда я даю своему сотруднику свой военный файл, он испытывает ту же самую проблему, что и у меня, и когда он дает мне скомпилированный файл .war, все работает. Мы оба работаем с одним и тем же источником. Итак, я пытаюсь правильно настроить maven (так же, как и он), у нас обоих есть одна и та же версия maven. Однако, я думаю, что maven неправильно смотрит на java_home.Maven, указывающий на JRE вместо jdk

, когда я делаю МВН команду -version, я получаю следующее: переменная JAVA_HOME

C:\java\KME_workspace\CU-KME>mvn -version 
Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500) 
Maven home: C:\java\tools\apache-maven-3.0.4 
Java version: 1.6.0_45, vendor: Sun Microsystems Inc. 
Java home: C:\java\jdks\jdk1.6.0_45\jre 
Default locale: en_US, platform encoding: Cp1252 
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" 

моей системы правильно установлен в C: \ Java \ JDKs \ jdk1.6.0_45.

Кто-нибудь знает, что мой maven смотрит на jre, и как правильно установить его обратно в JDK? Возможно, я тоже правильно смотрю на проблему, поэтому, если у вас есть какие-то идеи, это было бы здорово.

Спасибо.


Как некоторые из них отметили, ссылка JRE в Java дома в версии Maven был красный кролик сельдь отверстие с моей стороны. При дальнейшем тестировании у меня есть какая-то новая интересная информация. Я запускаю команды maven непосредственно из командной строки. Я проверяю код из нашего svn-репозитория с помощью eclipse и пытаюсь запустить пакет maven на этом коде, а .war не строит правильно. Однако, если я делаю команду экспорта в eclipse в новый каталог и запускает пакет maven, он строит .war fine и отлично работает. Как я понимаю, команда export в eclipse удаляет все файлы subversion в экспортированном каталоге. У кого-нибудь есть идеи о том, как это решить?

+3

Что является неправильным в вашем файле WAR? Возможно, это даст нам несколько намеков. Кроме того, вы знаете, что запуск 'mvn -version' в моем окне Windows 7 дает мне тот же результат (за исключением Java 7), и мои военные файлы строят отлично. – thatidiotguy

+4

Я не думаю, что maven является источником вашей проблемы. Запуск 'mvn -version' в моем ящике Linux показывает Java home как'/usr/local/java/7u25/jre'. Что вы подразумеваете под «maven - это не правильно построить мой военный файл». Вы сравнили два военных файла, чтобы понять, что другое? –

+1

Maven ('mvn') - это сценарий оболочки; это просто говорит вам, что он использует, чтобы на самом деле делать что-то. Вывод, который вы публикуете, - именно то, что должно быть. –

ответ

18

Из Maven Properties Guide:

$ {java.home} указывает путь к текущей среде JRE_HOME использования с относительными путями, чтобы получить, например: $ {java.home} ../ бен/Java .exe

java.home Свойство - это не то же самое, что настройка среды JAVA_HOME. Это фактически динамическое свойство, показывающее, какой JRE запускает ваш код.

Попытайтесь правильно установить свойство java.home и посмотрите, работает ли оно.

+0

Трудно заметить в своей документации «maven guide», если вы не смотрите очень внимательно. +1 за то, что заметили это и разделили его. – djangofan

+1

этот ответ - довольно многословная копия моего ответа с http://stackoverflow.com/a/15279640/365237 – eis

+0

ok, теперь скопированные материалы были удалены. отменяя мой нижний план. – eis

0

Windows CMD не обновляет переменные среды, и вам нужно запустить новый экземпляр для применения новой настройки среды и обновить новую переменную JAVA_HOME.

0

В Eclipse, Window> Предпочтения> Java> Установленные JRE> убедитесь, что jdk присутствует и выбран.

Если jdk и jre оба присутствуют, удалите jre из Установленных JRE.

0

После того, как у вас есть путь установки JDK:

  1. Щелкните правой кнопкой мыши значок Мой компьютер на рабочем столе и выберите Свойства.
  2. Перейдите на вкладку «Дополнительно».
  3. Нажмите кнопку «Переменные среды».
  4. В разделе «Системные переменные» нажмите «Создать».
  5. Введите имя переменной как JAVA_HOME.
  6. Введите значение переменной (один из указанных выше путей) в качестве пути установки для Java Development Kit.
  7. Нажмите OK.
  8. Нажмите «Применить изменения».

Возможно, вам потребуется перезапустить окна.

Это работало для меня.