Создайте проект Google App Engine в Eclipse с модулями

Я пишу приложение GAE с Eclipse с Maven, как это было предложено на cloud.google.com. Недавно мне нужно было использовать «бэкенды» или другой набор экземпляров для выполнения определенной задачи. Я узнал, что «бэкенды» устарели в пользу «модулей». Я провел последние пару дней, пытаясь настроить проект для использования модулей, и добился очень небольшого прогресса.

Все, что я хочу сделать, это чтобы разные URL-адреса отправлялись в разные наборы экземпляров (с использованием модулей и dispatch.xml). Кто-нибудь знает, как мне преобразовать мой существующий проект Eclipse для этого? Я даже готов сделать новый проект.

Мне нужны мои модули, чтобы: 1) использовать общий исходный код/классы из моего исходного приложения 2) иметь разное количество резидентных экземпляров 3) соблюдать правила в dispatch.xml

Я хотел бы, чтобы мой проект работал в eclipse и использовал либо gradle, либо maven.


person clocksmith    schedule 30.11.2014    source источник


Ответы (3)


У меня такая же проблема, я решил, используя этот способ.

Appstart (https://github.com/omerio/appstart) шаблонное многомодульное приложение App Engine на основе maven, которое демонстрирует использование таких технологий, как Guice, Jersey, Objectify, Cloud EndPoints, и имеет 3 модуля: внешний модуль, внутренний модуль и общий модуль, который включает в себя все общие классы, включая модель, которая должна показать вам пример того, как управлять общим кодом. Папка содержит следующие модули/проекты maven

  • appstart-backend
  • appstart-общий
  • appstart-ухо
  • appstart-интерфейс

Бэкэнд-модуль содержит только код, необходимый для бэкэнда, фронтенд содержит код внешнего интерфейса, а общий модуль содержит общий код. Проекты настраиваются внутри родительской папки «appstart» с родительским POM maven. Общий модуль включен как в интерфейс, так и в серверную часть с использованием зависимости maven:

<!-- Common module dependency -->
    <dependency>
        <groupId>uk.co.inetria.appstart</groupId>
        <artifactId>appstart-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

Когда вы изменяете общий код, вы можете запустить mvn clean, а затем установить его из каталога appstart-ear, и он должен обновить все зависимые проекты. надеюсь, это поможет

person yogesh    schedule 09.12.2014
comment
Я принял этот ответ. Но я на самом деле переключился на Intellij, и я не мог быть счастливее. - person clocksmith; 10.12.2014
comment
Не могли бы вы объяснить, как вы используете IntelliJ для модулей? Есть ли генератор для модуля? stackoverflow.com/questions/28671540/ - person pfried; 26.03.2015

В итоге я создал новый проект корпоративного приложения в eclipse, скопировал свой код и конфигурацию в новую файловую структуру, а затем повторно импортировал проект как проект maven. Кажется, сейчас все в порядке.

person clocksmith    schedule 03.12.2014

Вот пошаговое руководство по многомодульному проекту, который я создал с помощью eclipse Kepler.

1) создать mymodule1 как обычный динамический веб-проект

Установить целевую среду выполнения: Google App Engine (x.x.x)

Установите Добавить проект в ухо: выбрано

Установите имя проекта EAR: myear

Это создаст два проекта eclipse, один из которых связан с модулем, а другой — с файлом ear:

моймодуль1

мое ухо

В appengine-application.xml обоих этих проектов установлено

<application></application>

для хранения имени вашего проекта GAE (например, mygaeproject-11111). Это имя вы уже должны были создать в облачной консоли, и оно будет содержать несколько модулей.

2) В appengine-application.xml mymodule1 под

<application>mygaeproject-11111</application>

добавлять...

<module>mymodule1</module>

(В противном случае вы получите исключение «Несколько записей с одним и тем же ключом» позже)

3) В appengine-application.xml mymodule1 добавьте класс экземпляра, на котором вы хотите, чтобы модуль работал (внутри appengine-web-app), например:

<instance-class>F2</instance-class>

3) Из меню проекта почистите и mymodule1, и myear. Теперь вы можете развернуть myear на локальном сервере приложений Google, если хотите.

4) Вам также понадобится модуль по умолчанию для развертывания на рабочем сервере, поэтому создайте mymodule2 как обычный динамический веб-проект.

Установить целевую среду выполнения: Google App Engine (x.x.x)

Установите Добавить проект в ухо: выбрано

Установите имя проекта EAR: myear

5) В appengine-application.xml mymodule2 установите следующее и установите класс экземпляра, как раньше.

<application>mygaeproject-11111</application>
<module>default</module>

6) В файле application.xml (не appengine-application.xml) myear установите корень контекста, связанный с

<web-uri>mymodule2.war</web-uri> 

to

<context-root>default</context-root>

7) Хорошо, теперь очистите и снова соберите все и разверните на локальном сервере приложений Google. Если все выглядит хорошо, просто щелкните правой кнопкой мыши сервер на панели серверов и выберите... Развернуть на удаленном сервере.

8) Если позже вы захотите закрыть проект, выберите его в облачной консоли, затем перейдите в настройки на левой панели и нажмите «Отключить приложение».

person andrew pate    schedule 24.08.2016