Tôi có một ứng dụng máy chủ và hai ứng dụng khách dựa trên Swing. Chúng tôi đang phát triển chúng trong nhật thực và có một dự án riêng biệt cho mỗi.Tạo các lớp học trong cùng một gói vào các lọ riêng biệt
Nhiều lớp học được chia sẻ. Ví dụ: gói my.server
có một số lớp cho cả máy chủ và máy khách trong khi các lớp khác chỉ dành cho máy chủ. Mặc dù tôi thích đặt chúng trong cùng một gói vì chúng có liên quan chặt chẽ và một số chúng dựa vào khả năng hiển thị gói, tôi không muốn phân phối các lớp mà một ứng dụng không cần không chỉ làm kích thước tệp, mà còn nó sẽ là một nguy cơ bảo mật.
Hiện tại, mỗi máy chủ và máy khách đều có cùng một lọ, đó là một mớ hỗn độn. Lý tưởng nhất, tôi muốn tự động tạo ra các lọ dựa trên sự phụ thuộc như sau.
Server:
- server.jar: lớp học được sử dụng bởi máy chủ chỉ
- server-client1-common.jar: lớp học được chia sẻ bởi Server và Client 1
- server-client2-common.jar: các lớp học được chia sẻ bởi server và Client 2
khách hàng 1:
- client1.jar: lớp học được sử dụng bởi khách hàng 1 chỉ
- server-client1-common.jar: lớp học được chia sẻ bởi Server và Client 1
- client-common.jar: lớp học được chia sẻ bởi khách hàng 1 và Client 2, nhưng không phải máy chủ
khách hàng 2:
- client2.jar: lớp học được sử dụng bởi khách hàng 2 chỉ
- server-client2-common.jar: lớp học được chia sẻ bởi Server và Client 2
- client-common.jar: các lớp được chia sẻ bởi Máy khách 1 và Máy khách 2, nhưng không phải Máy chủ
Tôi nhận ra rằng bạn có thể thực hiện việc này theo cách thủ công, nhưng đó sẽ là một thảm họa bảo trì. Có một công cụ tự động xử lý sự phụ thuộc như vậy không?
Nếu bạn đang sử dụng 'maven' cho quá trình xây dựng, hãy kiểm tra cuộc thảo luận này: http://stackoverflow.com/questions/2424015/maven-best-practice- cho-tạo-nhiều-jars-với-khác nhau-lọc-lớp học – bchetty