Ответ 1
Я грубо следую шагам @developers.google.com/appengine/docs/java/webtoolsplatform в пользу моего предыдущего метода.
Сейчас я перехожу из Google Plugin для Eclipse в официальный Google Плагин App Engine Maven.
Последнее, я надеюсь, что я не могу понять, как настроить хороший рабочий процесс отладки. Когда я использовал GPE, я просто установил точки останова, и отладчик остановился там автоматически, но когда я запускаю dev-сервер через mvn appengine:devserver
, я не думаю, что dev-сервер и eclipse знают друг о друге.
Как мне заставить их разговаривать друг с другом?
Я грубо следую шагам @developers.google.com/appengine/docs/java/webtoolsplatform в пользу моего предыдущего метода.
Первый вариант - настроить ваш проект на использование WTP как документально подтвержденного @https://cloud.google.com/appengine/docs/java/webtoolsplatform. Это метод, на который я переключился.
Второй вариант - использование двух конфигураций отладки.
Первая конфигурация отладки будет запускать вашу цель maven, а именно appengine:devserver
.
Вторая конфигурация Remote Java Application
и подключит клиента отладки к devverver jvm.
Это также требует, чтобы некоторые аргументы jvm передавались в цель maven.
<!-- GAE plugin -->
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.7.5-SNAPSHOT</version>
<configuration>
<jvmFlags>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=y
</jvmFlag>
</jvmFlags>
<disableUpdateCheck>true</disableUpdateCheck>
</configuration>
</plugin>
После того, как эти 3 вещи на месте, запустите конфигурацию отладки maven, затем запустите конфигурацию клиента отладки, а затем выполните ваше приложение.
Пока нет поддержки для hotswap, поэтому, если вы измените любые файлы без ресурсов (любой источник java), devserver их не увидит. Файлы ресурсов будут развернуты (статические файлы: html, js).
Вы должны выполнить mvn из eclipse в режиме отладки.
В Eclipse вы можете настроить такие команды сборки maven из верхней панели инструментов eclipse "Запустить" → "Конфигурация отладки" → "Maven Build"
После запуска в maven в режиме отладки eclipse вы можете нажать на точки останова.
Изменить - Еще один вариант - настроить Remote Debug, т.е. "Запустить" → "Конфигурация отладки" → "Удаленное приложение Java" и прослушать удаленный порт отладки, то есть вы должны обеспечить appengine: devserver запускает удаленный порт отладки arguments - Reference - Удаленная отладка в eclipse
Этот question может дать вам намек на проблему. Maven appengine: devserver запускает сервер разработки на отдельный процесс. Однако Eclipse знает о самом процессе Maven (это то, что вы видите в отладочном представлении). Кроме того, поскольку dev-сервер не может быть запущен с такими аргументами, как порт отладки, он, вероятно, никогда не может быть подключен к отладчику.
Связанный с этим вопрос предполагает наличие неофициального плагина Maven GAE, который принимает аргументы. Там также есть новый билет для улучшения официального плагина и обещание разработчика плагинов для скорого выполнения этой функции.
Я посмотрю, что еще я могу сделать, чтобы упростить интеграцию eclipse, но теперь есть проблема с проблемой, связанной с проектом appengine-maven-plugin: http://code.google.com/p/appengine-maven-plugin/issues/detail?id=3&can=1, так что посмотрите, поможет ли вам поддержка аргументов jvm.
Пожалуйста, дайте мне знать ваши впечатления, я всегда сторонник того, чтобы все было потрясающе.
Я создал проект GAE (Java) в сентябре 2015 года, и для этого и подобных проектов применяется следующее.
Я начал с создания моего проекта, как в обычном проекте GAE maven, используя архетип скелета, просто выполнив соответствующие шаги из Использование Apache Maven - Java - Google Cloud Платформа. После Requirements до Тестирование вашего приложения с помощью разработки сервер.
После этого я импортировал этот проект в Eclipse JEE (Mars), используя "Импортировать существующий проект Maven". Начальная разработка.
Когда мне нужно было отлаживать, мне нужно было выполнить только несколько шагов, описанных ниже.
Перейдите в раздел Запустить → Конфигурации отладки, нажмите "Удаленное приложение Java" и создайте новую конфигурацию, нажав кнопку Создать (см. снимок экрана, верхний левый угол над фильтром текстовое поле).
Заполните детали, выбрав свой конкретный проект и укажите подходящее имя для конфигурации, как показано ниже (пусть порт будет 8000) и нажмите Применить:
В вашем проекте pom.xml найдите конфигурацию для плагина appengine-maven-plugin
и раскомментируйте следующие строки:
<jvmFlags>
<jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n</jvmFlag>
</jvmFlags>
mvn appengine:devserver
из командной строкиКак говорится в заголовке...
Нажмите маленький треугольник рядом с кнопкой Отладка и выберите имя конфигурации отладки, которую вы только что установили ( "HelloWorldServlet" в моем примере).