2014-11-30 7 views
6

Ich habe eine GAE-App mit Eclipse mit Maven wie auf cloud.google.com vorgeschlagen geschrieben. Vor kurzem musste ich "Backends" oder eine andere Reihe von Instanzen verwenden, um eine bestimmte Aufgabe zu bewältigen. Ich habe herausgefunden, dass "Backends" zugunsten von "Modulen" veraltet sind. Ich habe die letzten paar Tage damit verbracht, das Projekt für den Einsatz von Modulen zu entwickeln, und habe kaum Fortschritte gemacht.Erstellen Sie Google App Engine-Projekt in Eclipse mit Modulen

Alles, was ich tun möchte, ist unterschiedliche URLs Versand an verschiedene Sätze von Instanzen (mit Modulen und dispatch.xml). Weiß jemand, wie ich mein bestehendes Eclipse-Projekt umwandeln kann? Ich bin sogar bereit, ein neues Projekt zu machen.

muss ich meine Module: 1) Verwenden Sie Shared-Source-Code/Klassen von meiner ursprünglichen Anwendung 2) haben eine unterschiedliche Anzahl von residenten Instanzen 3) in die Regeln Ehre dispatch.xml

Ich möchte meine Projekt innerhalb von Eclipse laufen und verwenden Sie entweder Gradle oder Maven.

Antwort

5

Ich habe dasselbe Problem, ich löste mit diesem Weg.

AppStart (https://github.com/omerio/appstart) eine Textbaustein Maven-basierte Multi-Modul App Engine-Anwendung, die den Einsatz von Technologien wie Guice, Jersey, Objectify, Cloud EndPoints demonstriert und hat 3 Module ein Frontend-Modul, Backend-Modul und gemeinsames Modul, das alle enthält allgemeine Klassen einschließlich des Modells, die Ihnen ein Beispiel für die Verwaltung des gemeinsamen Codes zeigen sollen. Der Ordner enthält die folgenden Module/Maven

  • AppStart-Backend für
  • AppStart-common
  • AppStart-Ohr
  • AppStart-Frontend-Projekte

Das Backend-Modul enthält nur Code erforderlich Im Backend enthält das Frontend den Frontend-Code und das Common-Modul den Common-Code. Die Projekte werden in einem übergeordneten Ordner 'appstart' mit einem übergeordneten maven POM eingerichtet. Das gemeinsame Modul wird sowohl das Frontend und Backend mit einer Maven-Abhängigkeit enthalten:

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

Wenn Sie den gemeinsamen Code ändern können Sie mvn sauber installieren Sie dann aus dem AppStart-Ear-Verzeichnis laufen und es sollte alle abhängigen Projekte aktualisieren. Ich hoffe, das hilft

+0

Ich habe diese Antwort akzeptiert.Aber ich bin tatsächlich zu Intellij gewechselt und ich könnte nicht glücklicher sein. – clocksmith

+0

Können Sie erklären, wie Sie IntelliJ für die Module verwenden? Gibt es einen Generator für das Modul Ding? http://stackoverflow.com/questions/28671540/setting-up-a-project-for-google-app-engine-with-modules – pfried

1

Was ich getan habe, war, ein neues Enterprise-Anwendungsprojekt in Eclipse zu erstellen, meinen Code und meine Konfiguration in die neue Dateistruktur zu kopieren und das Projekt dann als Maven-Projekt erneut zu importieren. Die Dinge scheinen für den Moment in Ordnung zu sein.

0

Hier ist eine Walkthrough eines Multimodul-Projekts, das ich mit Eclipse Kepler erstellt habe.

1) schaffen mymodule1 als normale dynamische Web-Projekt

Set Ziellaufzeit: Google App Engine (x.x.x)

Set In-Projekt in ein Ohr: ausgewählt

Set EAR Projektname: myear

Diese zwei Eclipse-Projekte schaffen wird, eine mit dem Modul verbunden ist, und die andere mit der Ohr-Datei:

mymodule1

myear

im appengine-application.xml beider Projekte gesetzt

<application></application> 

zu beiden halten den Namen Ihres GAE-Projekts (z. mygaeproject-11111) Dieser Name sollte bereits in der Cloud-Konsole erstellt worden sein und die verschiedenen Module enthalten.

2) In dem appengine-application.xml von mymodule1 unter

<application>mygaeproject-11111</application> 

hinzufügen ...

<module>mymodule1</module> 

(Sonst beenden Sie später mit einem "Mehr Einträgen mit demselben Schlüssel" Ausnahme up)

3) Fügen Sie in der appengine-application.xml von mymodule1 die Instanzklasse hinzu, auf der das Modul ausgeführt werden soll (in der appengine-web-app), zum Beispiel:

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

3) Aus dem Projektmenü sowohl mymodule1 als auch myear löschen. Sie können myear jetzt auf Ihrem lokalen Google App-Server bereitstellen, wenn Sie möchten.

4) Sie müssen auch ein Standard-Modul auf einem Produktionsserver zu implementieren, so erstellen mymodule2 als normale dynamische Web-Projekt

Set Ziellaufzeit: Google App Engine (xxx)

Set Projekt hinzufügen ausgewählt

Set EAR Projektname: an ein Ohr gesetzt myear

5) In dem appengine-application.xml von mymodule2 folgende ein, und eine Instanz der Klasse festgelegt wie zuvor.

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

6) In der application.xml (Nicht-appengine application.xml) von myear eingestellt den Kontext root zugeordnet

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

zu

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

7) Ok jetzt sauber Erstellen Sie alles erneut und stellen Sie sie auf Ihrem lokalen Google App-Server bereit. Wenn alles gut aussieht, klicken Sie einfach mit der rechten Maustaste auf den Server im Server-Panel und wählen ... Bereitstellen auf dem Remote-Server

8) Wenn Sie das Projekt später beenden möchten, wählen Sie es in Ihrer Cloud-Konsole, dann gehen Sie zu den Einstellungen in der linken Bereich und klicken Sie auf Anwendung deaktivieren.

Verwandte Themen