2012-07-11 19 views
9

Próbuję dowiedzieć się, jak mogę dzielić pakiety między dwoma modułami w jednym projekcie IntelliJ i nie mogę znaleźć odpowiedniego sposobu, aby to zrobić. Wiem, że można to zrobić w Eclipse, ale nie jestem z nim dobrze zaznajomiony. Krótko mówiąc, próbuję odtworzyć ten sam rodzaj środowiska projektowego, stworzonego przez projekty Android związane z AppEngine.Udostępnianie pakietów Java między modułami w IntelliJ?

Oto "problem", jak najlepiej mogę położyć go

projektu A.

  • Moduł 1; AppEngine + GWT + cokolwiek innego
  • Moduł 2; Android

Każdy moduł posiada własny katalog źródłowy w głównym katalogu projektu:

  • /Projecta/module1/src
  • /Projecta/Module2/src

ja tworzenia pakietów dla obu modułów i napisz różne klasy potrzebne dla każdego z nich. Większość klas są unikalne dla modułu/platformy, a są pakowane do własnej przestrzeni nazw

Moduł 1

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

Moduł 2

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

jednak istnieje kilka identycznych interfejsów i wyliczeń, których używam w obu modułach: Teraz chciałbym mieć cały mój identyczny kod w jednym pakiecie współdzielonym między dwoma, więc nie muszę kopiować źródła między pakietami za każdym razem, gdy zmieniam coś w pobliżu.

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

wiem IntelliJ będzie można skonfigurować wiele Roots zawartość jako część konfiguracji modułu. Ale nie wydaje się, że dwa moduły opieki dzielą tę samą zawartość root, jeśli stanowią część tego samego projektu IntelliJ ...? Czy istnieje lepszy sposób na skonfigurowanie mojego projektu? Czy może czegoś brakuje ...?

Odpowiedz

7

Można przenieść kod udostępniony do innego modułu, który ma swój własny pierwiastek treści, mówią:

/ProjectA/Module3/src 

a następnie dodać zależność modułu na Module3 zarówno Module1 i Module2.

+0

* ** head-desk ** * nawet nie rozważał trzeciego modułu ... działał jak czar! Dzięki!! – aheinrich

+0

Próbowałem tego rozwiązania i nie działało z kompilacją GWT. Działa tylko dla kodu serwera. –

Powiązane problemy