Trước tiên, tôi đến (quay lại) với Java từ C#, vì vậy xin lỗi nếu thuật ngữ hoặc triết lý của tôi không hoàn toàn xếp hàng.Gói vs sự tách biệt dự án trong java
Đây là nền tảng: chúng tôi có một bộ sưu tập ngày càng lớn các công cụ hỗ trợ nội bộ được viết cho web. Họ sử dụng HTML5/AJAX/buzzwords khác cho giao diện người dùng và Java cho chương trình phụ trợ. Những công cụ này sử dụng một khung công tác nhẹ trong nhà để họ có thể chia sẻ một giao diện quản trị để bảo mật và cấu hình khác. Mỗi công cụ đã được viết bởi một tác giả riêng và tôi hy vọng xu hướng đó sẽ tiếp tục, vì vậy tôi muốn các tác giả trong tương lai dễ dàng "chuẩn hóa" trên thư viện của bên thứ ba mà chúng tôi đã quyết định sử dụng cho mọi thứ như DI, kiểm tra đơn vị, ORM vv
gói đặt tên của chúng tôi hiện trông như thế này:
- com.ourcompany.tools.framework
- com.ourcompany.tools.apps.app1name
- com.ourcompany.tools.apps.app2name
... v.v.
Vì vậy, đây là câu hỏi của tôi: nên mỗi ứng dụng (và khung công tác) này được coi là một dự án riêng biệt cho các mục đích thiết lập Maven, Eclipse, v.v ...?
Chúng tôi có thể có rất nhiều ứng dụng xuất hiện ở đây theo thời gian, vì vậy có vẻ như việc tách sẽ giữ cho các phụ thuộc rõ ràng hơn và để ai đó nhảy vào một công cụ dễ dàng hơn. Mặt khác, (1) có thể "chia nhỏ" các phần sâu hơn của một cấu trúc gói trên nhiều dự án là một mùi mã và (2) giữ chúng kết hợp sẽ làm cho các nhà văn công cụ có khuynh hướng sử dụng các thư viện của bên thứ ba. công cụ.
FWIW, bản năng ban đầu của tôi là tách chúng ra.
Điều gì nói bạn, rất kinh nghiệm về Java?
Tôi không biết khái niệm pom cha mẹ về xử lý phụ thuộc cho đến khi bạn đề cập đến nó. Tôi thực sự thích ý tưởng này để củng cố một số tiêu chuẩn hóa trên các ứng dụng. Các câu trả lời khác cũng tuyệt vời, nhưng pom cha mẹ cung cấp cho một trong những cạnh. Cảm ơn! –