2013-10-14 2 views
3

Я постараюсь, чтобы это было коротко. У меня есть Eclipse с установленным M2E (Maven to Eclipse) плагин. У меня есть проект GAE (Google App Engine), над которым я работаю. Все работает нормально, кроме одной действительно раздражающей вещи: я должен останавливать/запускать devserver каждый раз, когда я делаю изменения.Настройка Google App Engine, Maven и Eclipse

Если у вас есть опыт работы с этой настройкой, вы можете ответить на этот простой вопрос?

Я запускаю сервер разработки с «mvn appgnine: devserver» в командной строке. Теперь Я ожидал бы, что если бы я внес изменения в * .jsp, например, эти изменения будут автоматически обновляться на devserver. Это то, что происходит с тобой?

Я заметил, что если я вношу изменения в * .jsp файлы в моей целевой папке, тогда devserver увидит эти изменения и обновления, как я ожидал. Я думаю, что моя проблема заключается в том, что Eclipse не копирует изменения в целевую папку, но не уверен, даже если это возможно?

Есть ли у кого-нибудь какие-либо предложения относительно того, как я должен прогрессировать, расследуя это? У меня кончились идеи: -/

Я благодарю вас за любые ваши комментарии.

P.s Я знаю, что могу запускать «mvn package» для обновления файлов, но это медленный процесс, и у devserver заканчивается память после выполнения дважды.

ответ

3

Это может быть немного болезненно, в зависимости от того, как вы хотите работать и какую версию затмения вы используете.

  1. Установите m2e-WTP плагин, если у вас нет. Это секретный соус, который заставляет проекты appengine работать в eclipse. Обратите внимание, что это не m2e, а другой плагин.

  2. Установите GPE - плагин Google для затмения, если у вас есть не

  3. Убедитесь, что ваш проект управляется М2Э как проект Maven.

  4. Перейдите в свойства своего проекта - включите его в качестве проекта приложения, используя GPE (указанный в разделе «Google»). Не забудьте пометить HRD, пока вы здесь.

  5. Перейти к вашему пути построения проекта (Свойства -> Путь сборки Java).

    • Убедитесь, что на вкладке источника ваши ресурсы src/main/resources не имеют ** исключения.
    • Убедитесь на вкладке библиотеки ваш имеют три библиотек JDK ', «Google Appengine» и «зависимости Maven» и ничего
    • Убедитесь, на вкладке порядка и экспорта, что зависимости AppEngine находятся выше зависимостей Maven.

Это звучит довольно смешно - я не совсем уверен, почему его до сих пор настолько болезненным, но это хороший рецепт успеха.Как только это будет сделано, это должно позволить вам запускать отладку с самого eclipse, с высокой загрузкой кода, jsps, css, скриптов и т. Д. У меня была эта работа в helios, indigo и juno.

Подробнее о настройках m2e-wtp here. Они относятся к GWT, но это то же самое для appengine (я не уверен, почему акцент на использовании GWT на GAE), потому что он фактически о правильной настройке GPE и Maven.

Вы также обнаружите, что вам может потребоваться повторить некоторые части шага 5 довольно часто - если ваше приложение не загружается должным образом, быстро посмотрите, чтобы ваши ресурсы не были исключены. Это происходит, когда вы обновляете конфигурацию проекта с помощью плагина m2e.

Плагин wtp-m2e обновляет целевую папку по мере изменения ресурсов - поэтому это также должно решить проблемы, запущенные из командной строки, но я не могу ручаться за это - я предпочитаю запускать прямо из затмения.

+0

Спасибо вам большое за ваш исчерпывающий ответ Ник. Сегодня я расскажу об этом позже. Я фактически использовал плагин Google Eclipse и нашел его действительно хорошим, но решил изменить мою версию Eclipse и добавить Maven в микс, потому что мне нужно управление зависимостями. Я дам вам знать, как я нахожусь :-) –

+0

Привет, Ник, я пробовал точно, что сказал, но не удача затмения бросает ошибку на моем лице, ее действительно разочаровывает, следующая моя ошибка, ** java .lang.NullPointerException \t в com.google.appengine.eclipse.core.properties.ui.GaeProjectPropertyPage.saveChangesToAppEngineWebXml (GaeProjectPropertyPage.java:890) ** в плагине com.google.gdt.eclipse.core –

+0

также, я получить еще ошибка ** Описание \t \t Resource Path \t \t Расположение Тип приложение Engine SDK «/Users/Ramesh/.m2/repository/com/google/appengine/appengine-api-1.0-sdk/1.9.3/appengine- api-1.0-sdk-1.9.3.jar 'на пути сборки проекта недействительно (местоположение SDK '/Users/Ramesh/.m2/repository/com/google/appengine/appengine-api-1.0-sdk/1.9.3/appengine-api-1.0-sdk-1.9.3.jar' не является директория) \t RameshProfile \t \t Неизвестно \t Проблема с Google App Engine ** какое затмение на самом деле требуется? –

1

У меня такая же проблема, как и вы, однако я решил другим способом. Я использую FileSync плагин (который можно найти на рынке). С помощью этого плагина вы настраиваете каталог ввода (webapp) и Выходной каталог (цель). Любые изменения, внесенные в webapp, будут переданы цели. Я тоже помог.

0

Вы можете использовать Rsync, как это:

 rsync -r --existing src/main/webapp/ target/ROOT 

где "ROOT" является проект сборки finalName.

0

Следующий пункт работал для меня.

Убедитесь, что на вкладке «Заказ» и «Экспорт» зависимости зависимостей appengine находятся выше зависимостей maven.

+0

внизу? Нет ничего ниже вашего поста. Можете ли вы предоставить ссылку на сообщение, на которое вы ссылаетесь? – rayryeng

+0

вам нужно убедиться, что на вкладке «Заказ» и «Экспорт» зависимости зависимостей appengine находятся выше зависимостей maven. –

+0

в настройке пути построения eclipse проверьте, что зависимость от механизма приложения выше зависимости от maven. если не выбрать зависимость механизма приложения и нажать в правом меню –

Смежные вопросы