2014-10-08 4 views
2

В настоящее время я работаю над Модули приложений Google App. Я имею в виду the documentationКак обрабатывать общие классы в модулях App Engine Java в разных модулях?

Я смущен как как обрабатывать классы моделей или общие классы. Раньше я использовал back-end, поскольку весь код хранился в проекте, но теперь с модулями я не понимаю, как управлять общим кодом.

ответ

1

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

+0

Но каждый раз, когда я менял какую-то строку в этом общем коде, мне нужно снова собрать jar и добавить в разные модули по отдельности. – yogesh

+0

Да, это правда. Я полагаю, что другой вариант заключается в том, чтобы поместить общий код в отдельный исходный каталог, который различные модули включают в свои исходные пути. –

+0

Пожалуйста, проголосуйте за эту проблему, чтобы ее можно было исправить: Плагин GAE WTP Eclipse не поддерживает проекты с общей ссылкой (общий код): https://code.google.com/p/googleappengine/issues/detail?id=10652 – Andre

4

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

  • AppStart-бэкенд
  • AppStart-общий
  • AppStart уха
  • AppStart-интерфейс

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

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

При изменении общего кода вы можете запустить MVN чистыми затем установить из каталога AppStart уха, и он должен обновить все зависимые проекты. Я надеюсь, что это поможет

+0

Это обязательно должно быть отмечено как правильный ответ. Я искал весь день, чтобы найти, как это сделать, и это единственный рабочий/чистый способ, который я нашел до сих пор. – user1084563

+0

Я не использую Maven Based Project, поэтому не предпочитаю это решение. – yogesh

+0

@omerio есть способ использовать appstart-frontend в качестве основного артефакта и не иметь уха? Как это будет выглядеть? Я сейчас в проекте, вроде такого, но без уха - вот почему я спрашиваю. Спасибо! –

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