Tại nơi làm việc, chúng tôi đang triển khai gói phần mềm của ứng dụng Java (được viết bởi chúng tôi) có nhiều phụ thuộc bên ngoài, hầu hết trong số chúng là các thư viện bên thứ ba được cấp phép của LGPL và BSD phân phối dưới dạng lưu trữ JAR.
Hiện tại, chúng tôi đang triển khai một máy khách thử nghiệm của phần mềm được phân phối dưới dạng một kho lưu trữ java fat jar duy nhất, được tạo bởi plugin lắp ráp Maven, có chức năng như sau:
- trích xuất tất cả các phụ thuộc
- hoàn lại chúng dưới dạng một kho lưu trữ jar
Tất cả các tệp lớp được trích xuất, và sau đó được gói lại thành một tệp JAR duy nhất với ứng dụng của chúng ta. Tôi nhận ra rằng một số tệp bị ghi đè, chủ yếu là các tệp LICENSE.txt, do có cùng tên.
Tôi tự hỏi liệu điều này có đúng không và tuân thủ giấy phép LGPL. Điều gì sẽ là một cách tốt hơn để phân phối phần mềm? Làm thế nào gói đặc biệt này sẽ được tổ chức tốt nhất?
Chúng tôi không kết hợp bất kỳ mã nguồn nào trực tiếp vào các tệp nguồn của mình, chúng tôi cũng không chạm vào các tệp nhị phân. Mã nguồn của các thư viện đi kèm với toàn bộ sản phẩm. (Đây là phần mềm được sử dụng nội bộ, không được triển khai cho khách hàng hoặc bất cứ điều gì, nhưng tôi đoán điều đó không quan trọng.)
PS: Tôi đã hỏi câu hỏi tương tự trên Stack Overflow, và tôi được đề nghị hỏi nó ở đây.