2012-07-11 30 views
9

Tôi đang cố gắng tìm ra cách tôi có thể chia sẻ các gói giữa hai mô-đun trong một dự án IntelliJ duy nhất, và tôi dường như không thể tìm ra đúng cách để thực hiện nó. Tôi biết nó có thể được thực hiện trong Eclipse, nhưng tôi không phải là rất thạo với nó. Tóm lại, tôi đang cố gắng tái tạo cùng một loại môi trường dự án được tạo ra bởi các dự án Android được kết nối với AppEngine.Chia sẻ các gói Java giữa các mô-đun trong IntelliJ?

Dưới đây là các "vấn đề" như tốt nhất mà tôi có thể đẻ nó ra

Dự án A.

  • Module 1; AppEngine + GWT + bất kỳ điều gì khác
  • Mô-đun 2; Android

Mỗi module có thư mục nguồn riêng của mình trong thư mục chính của dự án:

  • /PROJECTA/Module1/src
  • /PROJECTA/module2/src

tôi tạo gói cho cả hai mô-đun và viết các lớp khác nhau cần thiết cho mỗi mô-đun. Hầu hết các lớp học là duy nhất cho các mô-đun/nền tảng, và được đóng gói thành namespace riêng của họ

Mô-đun 1

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

Mô-đun 2

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

Tuy nhiên, có một số giao diện và Enums giống nhau mà tôi sử dụng trong cả hai mô-đun: Bây giờ tôi muốn có tất cả mã giống hệt nhau trong một gói duy nhất được chia sẻ giữa hai, vì vậy tôi không phải sao chép nguồn giữa các gói mỗi khi tôi thay đổi một cái gì đó xung quanh.

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

Tôi biết IntelliJ sẽ cho phép bạn cấu hình nhiều Roots nội dung như là một phần cấu hình của mô-đun. Nhưng có vẻ như hai mô-đun chăm sóc chia sẻ cùng một nội dung gốc nếu phần của họ trong cùng một dự án IntelliJ ...? Có cách nào tốt hơn để định cấu hình dự án của tôi không? Hoặc tôi đang thiếu một cái gì đó ..?

Trả lời

7

Bạn có thể di chuyển mã chia sẻ vào một mô-đun có gốc nội dung của riêng mình, nói:

/ProjectA/Module3/src 

và sau đó thêm một sự phụ thuộc mô-đun trên Module3 cho cả Module1 và module2.

+0

* ** đầu bàn ** * thậm chí không xem xét mô-đun thứ ba ... hoạt động như một sự quyến rũ! Cảm ơn!! – aheinrich

+0

Tôi đã thử giải pháp này và nó không hoạt động với trình biên dịch GWT. Nó chỉ hoạt động đối với mã máy chủ. –

Các vấn đề liên quan