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

Как сделать Eclipse и mvn appengine: devserver разговаривают друг с другом?

Сейчас я перехожу из Google Plugin для Eclipse в официальный Google Плагин App Engine Maven. Последнее, я надеюсь, что я не могу понять, как настроить хороший рабочий процесс отладки. Когда я использовал GPE, я просто установил точки останова, и отладчик остановился там автоматически, но когда я запускаю dev-сервер через mvn appengine:devserver, я не думаю, что dev-сервер и eclipse знают друг о друге.

Как мне заставить их разговаривать друг с другом?

4b9b3361

Ответ 2

Первый вариант - настроить ваш проект на использование WTP как документально подтвержденного @https://cloud.google.com/appengine/docs/java/webtoolsplatform. Это метод, на который я переключился.

Второй вариант - использование двух конфигураций отладки.

Первая конфигурация отладки будет запускать вашу цель maven, а именно appengine:devserver. enter image description here

Вторая конфигурация Remote Java Application и подключит клиента отладки к devverver jvm.
enter image description here

Это также требует, чтобы некоторые аргументы 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).

Ответ 3

Вы должны выполнить mvn из eclipse в режиме отладки.

enter image description here

В Eclipse вы можете настроить такие команды сборки maven из верхней панели инструментов eclipse "Запустить" → "Конфигурация отладки" → "Maven Build"

После запуска в maven в режиме отладки eclipse вы можете нажать на точки останова.

Изменить - Еще один вариант - настроить Remote Debug, т.е. "Запустить" → "Конфигурация отладки" → "Удаленное приложение Java" и прослушать удаленный порт отладки, то есть вы должны обеспечить appengine: devserver запускает удаленный порт отладки arguments - Reference - Удаленная отладка в eclipse

Ответ 4

Этот question может дать вам намек на проблему. Maven appengine: devserver запускает сервер разработки на отдельный процесс. Однако Eclipse знает о самом процессе Maven (это то, что вы видите в отладочном представлении). Кроме того, поскольку dev-сервер не может быть запущен с такими аргументами, как порт отладки, он, вероятно, никогда не может быть подключен к отладчику.

Связанный с этим вопрос предполагает наличие неофициального плагина Maven GAE, который принимает аргументы. Там также есть новый билет для улучшения официального плагина и обещание разработчика плагинов для скорого выполнения этой функции.

Ответ 5

Я посмотрю, что еще я могу сделать, чтобы упростить интеграцию eclipse, но теперь есть проблема с проблемой, связанной с проектом appengine-maven-plugin: http://code.google.com/p/appengine-maven-plugin/issues/detail?id=3&can=1, так что посмотрите, поможет ли вам поддержка аргументов jvm.

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

Ответ 6

Ответ Соответствующий в 2015 году

Я создал проект GAE (Java) в сентябре 2015 года, и для этого и подобных проектов применяется следующее.

Я начал с создания моего проекта, как в обычном проекте GAE maven, используя архетип скелета, просто выполнив соответствующие шаги из Использование Apache Maven - Java - Google Cloud Платформа. После Requirements до Тестирование вашего приложения с помощью разработки сервер.

После этого я импортировал этот проект в Eclipse JEE (Mars), используя "Импортировать существующий проект Maven". Начальная разработка.

Когда мне нужно было отлаживать, мне нужно было выполнить только несколько шагов, описанных ниже.

Создайте конфигурацию отладки

Перейдите в раздел Запустить → Конфигурации отладки, нажмите "Удаленное приложение Java" и создайте новую конфигурацию, нажав кнопку Создать (см. снимок экрана, верхний левый угол над фильтром текстовое поле).

Создать новую конфигурацию отладки для удаленного приложения Java

Заполните детали, выбрав свой конкретный проект и укажите подходящее имя для конфигурации, как показано ниже (пусть порт будет 8000) и нажмите Применить:

Настройки конфигурации отладки

Раскомментировать некоторые строки в pom.xml

В вашем проекте pom.xml найдите конфигурацию для плагина appengine-maven-plugin и раскомментируйте следующие строки:

                <jvmFlags>
                    <jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n</jvmFlag>
                </jvmFlags>

Запустите команду mvn appengine:devserver из командной строки

Как говорится в заголовке...

Прикрепите отладчик из Eclipse

Нажмите маленький треугольник рядом с кнопкой Отладка и выберите имя конфигурации отладки, которую вы только что установили ( "HelloWorldServlet" в моем примере).