2010-07-18 44 views
8

Các phương pháp hay nhất (và cho phép các công cụ) triển khai các ứng dụng độc lập Java cùng với bất kỳ phụ thuộc jar yêu cầu nào, các tệp cấu hình và các tập lệnh khởi chạy?Triển khai các tệp Java

Có bất kỳ plugin Maven nào giúp giảm bớt việc xuất bản các bản phát hành nhị phân, để người dùng không cần sử dụng maven chẳng hạn?

Trả lời

3

Đố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.

6

Có bất kỳ plugin Maven nào giúp giảm bớt các bản phát hành nhị phân xuất bản, để người dùng không cần sử dụng maven chẳng hạn?

Để tạo phân phối nhị phân dưới dạng zip/tar.gz/tar.bz2 của dự án của bạn. Plugin này cực kỳ linh hoạt - với mức giá phức tạp - và bạn có thể thực hiện hầu hết mọi thứ bạn muốn. Sau đó, deploy (trong ý nghĩa maven) tạo tác, tải nó lên đâu đó, v.v.

1

Có launch4j, nếu bạn có thể làm việc, sẽ kết hợp ứng dụng Java vào một tệp thực thi cho nền tảng của bạn.

1

Nếu mục tiêu triển khai của bạn hỗ trợ tệp RPM, tôi khuyên bạn nên điều tra rpm-maven-plugin. Nó cho phép bạn dễ dàng ánh xạ các tạo phẩm dự án của bạn, bao gồm cả các phụ thuộc, tới một gói RPM.

Tôi đã sử dụng nó với thành công lớn trong việc triển khai ứng dụng quy mô trung bình.

0

Hãy xem Appassembler Maven Plugin. Bạn cũng có thể muốn kết hợp nó với Assembly Maven Plugin.

Sử dụng plugin appassembler để tạo tập hợp "chương trình" bằng cách chỉ định tên thực thi và các lớp chính. Bạn cũng có thể thêm nó vào trước và tạo một thư mục etc, trong đó bạn có thể thêm các tệp cấu hình.

Nếu tạo thư mục có tập lệnh khởi động và thư mục tệp nhị phân không đủ, bạn có thể sử dụng plugin lắp ráp để sao chép các tệp bổ sung (nói tệp cấu hình) vào thư mục thích hợp và/hoặc gói ứng dụng vào kho lưu trữ.

0

Bạn có thể sử dụng Oracle kiến ​​hoặc maven kịch bản:

http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

trên sẽ không chỉ biên dịch mã của bạn và tạo file jar, nhưng nó cũng sẽ tạo ra thực thi nhị phân (cửa sổ exe tập tin hoặc tập tin ứng dụng Mac). Nó cũng có thể tạo trình cài đặt gốc. Ngoài ra, nó cho phép bạn bao gồm JVM với phân phối của bạn để sử dụng cuối cùng không cần phải cài đặt Java.

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