2011-01-16 6 views
3

Ich erstelle eine Android-Anwendung (als Eclipse-Projekt), die auf einen Webdienst zugreifen muss. Wir werden die Daten vom Dienst als serialisierte JSON-Klassen senden. Daher möchten wir einige Klassen zwischen der Android-Anwendung und der Serveranwendung freigeben. Wir denken derzeit, dass wir unser Git Repository mit 3 Ordnern strukturieren müssen. Eine für den Client, eine für den Server und eine für die gemeinsam genutzte Bibliothek.Wie sollte ich mein Projekt strukturieren, um Klassen zwischen einer Android-Client-Anwendung und einer JSP-Server-Anwendung zu teilen?

Aber an diesem Punkt konnten wir nicht herausfinden, wie der gemeinsame Code erstellt wird. Es sieht so aus, als könnten wir alle .java-Dateien in einen Ordner legen und dann einen relativen Link zu diesem Ordner aus den anderen Projekten erstellen, aber ist das ein guter Weg, dies zu tun?

Die andere Möglichkeit, die wir fanden, war, ein anderes Projekt in Eclipse zu erstellen und dann das Bibliotheksprojekt in das Clientprojekt einzubeziehen. Allerdings sind wir hier auf ein Problem gestoßen. Wie können wir die Bibliothek sowohl für den Server als auch für Android nutzbar machen? Wenn ich in Eclipse ein neues Java-Projekt erstelle, muss ich eine JRE für das Erstellen auswählen, aber Dalvik ist keine Option, und selbst wenn ich die Bibliothek mit einer Desktop-VM verwenden könnte, wenn die Bibliothek für Dalvik kompiliert wurde?

Antwort

5

würde ich 3 Projekte verwenden:

  • Server
  • Client (android) in Server und Client

und umfassen geteilt als Projektabhängigkeit geteilt. Wenn Sie ant benutzen, würden Sie die Datei shared.jar sowohl in server/lib als auch in client/lib bei jeder Änderung löschen, und wenn Sie maven verwenden, ist dies eine Abhängigkeit (möglicherweise mit Ant + Ivy ist es auch eine Abhängigkeit). Betrachten Sie Nexus in diesem Fall als Repository-Speicherort.

+1

Ich habe noch nie Ant oder make benutzt, also musst du mir sagen, ob ich das richtig verstehe. Ich sollte ein Ant-Makefile erstellen, das nur das Jar von den freigegebenen zu den anderen zwei Projektordnern kopiert. Das Makefile sollte zwei Zeilen haben, die aussehen wie "". Und dann füge ich einfach den Ant-Builder an das Ende der Builder-Liste in Eclipse für das freigegebene Projekt. –

+0

@Mr. Nicht eindeutig Während der Entwicklung können Sie das gemeinsam genutzte Projekt einfach zum Erstellungspfad der Server- und Clientprojekte hinzufügen. Für die Lieferung (Erstellen des lieferbaren Pakets) sollten Sie besser die shared.jar-Datei als ein separates "Programm" betrachten, wie alle anderen jars. Möglicherweise indem Sie irgendwo auf Ihrer Festplatte ein Verzeichnis "libs" erstellen und dort geteilte .jar Dateien einfügen. Und kopiere von dort. – extraneon

0

Sie können den Pfad zu den Klassen/JARs zum Laufzeitklassenpfad des Servers hinzufügen.

Da es unklar ist, welche Sie verwenden, ist hier nur eine generische Antwort basierend auf Apache Tomcat.

  • Öffnen Sie /conf/catalina.properties Datei.
  • Bearbeiten Sie shared.loader Eintrag, um den Pfad zum Paketstamm dieser Klassen oder JAR-Datei (en) aufzunehmen.

    z.

    shared.loader = /path/to/classes 
    

    oder

    shared.loader = /path/to/specific.jar 
    

    oder

    shared.loader = /path/to/*.jar 
    

    können Sie auch mehrere Pfade durch ein Komma getrennt angeben.

3

Sie müssen kein separates Eclipse-Projekt für die gemeinsam genutzten Klassen erstellen. Sie können einfach einen gemeinsamen Quellenordner außerhalb der Festplattenhierarchie der anderen beiden Projekte erstellen. Sowohl für das Server- als auch für das Client-Projekt: Fügen Sie im Eigenschaften/Java-Buildpfad/Quelle eine 'Verknüpfungsquelle' zum neuen Ordner hinzu. (Vielleicht ist das mit "relativer Verbindung" gemeint). Es ist einfach, diesen allgemeinen Quellordner einer Ant-Build-Datei hinzuzufügen.

Verwandte Themen