2012-07-11 13 views
9

Ich versuche herauszufinden, wie ich Pakete zwischen zwei Modulen in einem einzigen IntelliJ-Projekt teilen kann, und ich kann nicht den richtigen Weg finden, es zu tun. Ich weiß, dass es in Eclipse gemacht werden kann, aber ich bin nicht sehr versiert damit. Kurz gesagt, ich versuche, die gleiche Art von Projektumgebung zu reproduzieren, die von mit AppEngine verbundenen Android-Projekten erstellt wurde.Gemeinsame Nutzung von Java-Paketen zwischen Modulen in IntelliJ?

Hier ist das "Problem", so gut ich es heraus legen kann

Projekt A.

  • Modul 1; AppEngine + GWT + was auch immer
  • Modul 2;
  • Android

Jedes Modul hat sein eigenes Quellverzeichnis im Hauptverzeichnis des Projektes:

  • /ProjectA/Module1/src
  • /ProjectA/Module2/src

I Pakete erstellen für beide Module und schreibe die verschiedenen benötigten Klassen für jedes. Die meisten Klassen sind einzigartig für das Modul/Plattform und verpackt werden in ihre eigenen Namensraum

Modul 1

  • com.example.myproject.server
  • com.example.myproject.server.domain
  • com.example.myproject.server.services
  • ...

Modul 2

  • com.example.myproject.client
  • com.example.myproject.client.activities
  • com.example.myproject.client.fragments
  • ...

jedoch Es gibt einige identische Interfaces und Enums, die ich in beiden Modulen verwende: Jetzt möchte ich meinen gesamten identischen Code in einem einzigen Paket haben, damit ich nicht jedes Mal, wenn ich es ändere, die Quelle zwischen den Paketen kopieren muss etwas herum.

  • com.example.myproject.shared
  • com.example.myproject.shared.interfaces
  • ...

Ich weiß, IntelliJ ermöglicht es Ihnen, mehrere Content-Roots als Teil zu konfigurieren der Konfiguration eines Moduls. Aber es scheint nicht so zu sein, dass zwei Module den gleichen Inhaltsstamm teilen, wenn sie Teil desselben IntelliJ-Projekts sind ...? Gibt es eine bessere Möglichkeit, mein Projekt zu konfigurieren? Oder vermisse ich etwas ..?

Antwort

7

Sie könnten gemeinsamen Code in ein anderes Modul verschieben, der seinen eigenen Inhalt Wurzel hat, sagen:

/ProjectA/Module3/src 

und dann ein Modul Abhängigkeit von Module3 in den beiden Module1 und Module2.

+0

* ** Head-Desk ** * dachte nicht einmal an ein drittes Modul ... arbeitete wie ein Charme! Vielen Dank!! – aheinrich

+0

Ich habe diese Lösung ausprobiert und es hat nicht mit der GWT-Kompilierung funktioniert. Es funktionierte nur für den Servercode. –

Verwandte Themen