Đối với phụ thuộc, tôi chỉ sử dụng maven dependency copy plugin và sao chép tất cả các phụ thuộc vào thư mục ./lib và cung cấp tập lệnh khởi chạy sử dụng class path wildcard (theo cách đó bạn có thể thay đổi phụ thuộc của mình nhiều như bạn muốn và không có để thay đổi tập lệnh khởi chạy). Đối với các tập tin cấu hình, tôi đặt nó trong một thư mục ./config và một lần nữa bao gồm nó trong classpath của ứng dụng của tôi trong kịch bản khởi chạy (trước đây được thừa nhận chỉ làm việc cho> java 1.6).
Vì vậy, cuối cùng thì hầu hết các ứng dụng của tôi có cấu trúc sau:
mystuff.jar launch.sh
./lib
./config
Sau đó, tôi sẽ chỉ zip lên toàn bộ điều và đưa nó cho người dùng của tôi. Toàn bộ quá trình có thể dễ dàng tự động hóa bằng cách sử dụng maven, nhưng tôi thú nhận rằng tôi làm điều đó bằng tay: p
Nếu bạn thích và giấy phép cho phép, bạn cũng có thể gộp tất cả các phụ thuộc vào một cái bình (với phụ thuộc mở rộng bên trong) sử dụng assembly plugin. Điều này có xu hướng làm cho chiếc bình cồng kềnh và cho người dùng một ứng dụng được cập nhật. khó hơn. Ngoài ra tôi đã có vấn đề với nó một thời gian vì các tập tin lớp học bị ghi đè hoặc một cái gì đó để cá nhân tôi dính vào thư mục ./lib.
Nguồn
2010-07-18 19:31:32