Xây dựng dự án thành JAR tự động trong Eclipse


171

Tôi có một dự án Eclipse nơi tôi muốn giữ cho dự án Java của mình được tích hợp vào JAR. Tôi biết tôi có một tùy chọn để xuất dự án thành JAR; nếu tôi nhấp chuột phải; nhưng điều tôi thực sự tìm kiếm là, giống như Eclipse tự động xây dựng .classcác tệp của dự án và đặt chúng vào thư mục đích; nó cũng nên tự động xây dựng một JAR và sao chép JAR mới nhất tại một số hoặc một vị trí cụ thể.

Có một tùy chọn để cấu hình Eclipse theo cách như vậy, để xây dựng các JAR tự động không?

Chỉ cần làm cho nó rõ ràng cho các chàng trai, đủ kiên nhẫn để trả lời câu hỏi của tôi; Tôi không xem ANT là giải pháp; như tôi đã sử dụng nó, nhưng những gì tôi muốn nó sẽ được bắt đầu tự động với trình kích hoạt dựa trên thời gian hoặc xây dựng ngay lập tức với sự thay đổi.


1
Ý kiến ​​cá nhân của tôi: Sử dụng m2e, tích hợp maven của Eclipse, do đó, nó tạo ra một bình cho bạn như là một phần của bản dựng. Gần đây tôi đã cố gắng sử dụng Eclipse mà không có Maven và không thể tin được trình xây dựng Java cơ bản nguyên thủy như thế nào.
Craig Ringer

1
Đối với năm 2018, hãy sử dụng công cụ xây dựng thay vì chức năng cụ thể của IDE. Maven mua cho bạn tính độc lập IDE và hỗ trợ dòng lệnh.
Thorbjørn Ravn Andersen

@Craig Ringer - có một liên kết về cách làm điều đó?
nsandersen

Câu trả lời:


27

Hãy xem Kiến Ant

Có thể sử dụng Ant để xây dựng tự động với nhật thực, đây là cách


Tôi đã sử dụng kiến ​​Apache để thực hiện các bản dựng và tạo Jar. Nhưng những gì tôi thực sự tìm kiếm là một cách xung quanh kiến ​​apache, và trực tiếp sử dụng nhật thực.
Priyank

Xin lỗi, tôi đã không đi qua bài viết trong liên kết trước đó. Nó thực sự nói về những gì tôi cần. Cảm ơn.
Priyank

1
Trả lời của Konrad phù hợp hơn với những gì OP đang tìm kiếm.
lycono

lycono, tôi không đồng ý - OP muốn bình được cập nhật và xuất tệp jar không cố gắng giải quyết vấn đề đó.
James Moore

1
Vào tháng 7 năm 2011, bài viết được tham chiếu bởi @Peter không nói về cách xây dựng một tệp jar.
James Moore

288

Bạn muốn một .jardesctập tin. Họ không tự động khởi động, nhưng chỉ trong vòng 2 lần nhấp.

  1. Nhấp chuột phải vào dự án của bạn
  2. Chọn Export > Java > JAR file
  3. Chọn tệp bao gồm và tên đầu ra JAR, sau đó nhấp Next
  4. Kiểm tra "Lưu mô tả của JAR này trong không gian làm việc" và chọn tên cho .jardesctệp mới

Bây giờ, tất cả những gì bạn phải làm là nhấp chuột phải vào .jardesctệp của bạn và chọn Create JARvà nó sẽ xuất nó ở cùng một vị trí.


Đáng buồn là câu trả lời này đã không nhận được nhiều upvote (hoặc câu trả lời hay nhất) vài tháng trước. Ồ tốt, đến bây giờ Konrad đã biến mất.
Dan Rosenstark

25
Trong Eclipse Galileo, tôi đã phải thay thế bước 1 của bạn bằng Tệp -> Xuất -> Java -> tệp JAR.
Matt Huggins

9
Có cách nào để tự động hóa bước 'nhấp chuột phải -> Tạo JAR' không?
Asaf

4
Có cách nào để tự động hóa bước 'nhấp chuột phải -> Tạo JAR' hoặc liên kết nó với một tổ hợp phím không?
Pacerier

5
Tôi sử dụng "Xuất ... -> Java -> tệp JAR có thể chạy" để tạo chính xác điều đó.
TedTrippin

70

Tạo một tệp Ant và bảo Eclipse xây dựng nó. Chỉ có hai bước và mỗi bước đều dễ dàng với các hướng dẫn từng bước dưới đây.


Bước 1 Tạo tệp build.xml và thêm vào gói explorer:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

Nhật thực sẽ trông giống như ảnh chụp màn hình bên dưới. Lưu ý biểu tượng Ant trên build.xml. Build.xml trong Dự án Eclipse

Bước 2 Nhấp chuột phải vào nút gốc trong dự án. - Chọn Thuộc tính - Chọn Trình tạo - Chọn Mới - Chọn Ant Build - Trong tab Chính, hoàn tất đường dẫn đến tệp build.xml trong thư mục bin .

Cấu hình trình xây dựng Ant Xây dựng bước - Tab mục tiêu

Kiểm tra đầu ra

Cửa sổ đầu ra Eclipse (có tên Console) sẽ hiển thị như sau sau khi xây dựng:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

EDIT: Một số ý kiến ​​hữu ích của @yeoman và @betlista

@yeoman Tôi nghĩ rằng bao gồm chính xác sẽ là /. class chứ không phải *. class, vì hầu hết mọi người sử dụng các gói và do đó tìm kiếm đệ quy cho các tệp lớp có ý nghĩa hơn là bao gồm phẳng

@betlista Tôi sẽ đề nghị không có build.xml trong thư mục src


2
Có, bạn có thể chọn các mục tiêu cho bước xây dựng như sau: Sau khi làm sạch, Xây dựng thủ công, Tự động xây dựng và trong khi làm sạch. Auto Build sẽ cung cấp cho bạn những gì bạn muốn :)
Thomas Bratt

8
Sau khi thử cả hai, giải pháp này có vẻ tốt hơn nhiều so với của Konrad. Nó yêu cầu bạn phải tự tìm ra một số đường dẫn trong tệp xây dựng của mình nhưng nó cho phép xây dựng tự động (thay vì 2 lần nhấp) và cho phép tùy chỉnh dễ dàng (ví dụ sao chép tệp jar sau khi xây dựng). Đây là cách xây dựng tệp jar khi có tệp xây dựng trong thư mục gốc và có nhiều cấp độ gói được lồng nhau:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi

3
+1 Làm thế nào đây không phải là câu trả lời được chấp nhận và thậm chí không phải là câu trả lời được bình chọn nhiều nhất?
Juan Garcia

2
Cảm ơn rât nhiều. Tôi sẽ khuyên bạn không nên có build.xmltrong thư mục src, nhưng phần còn lại đang hoạt động tốt, thật tuyệt vời!
Betlista 2/2/2016

1
Tôi nghĩ rằng bao gồm chính xác sẽ là /. Class, không phải *. Class, vì hầu hết mọi người sử dụng các gói và do đó tìm kiếm đệ quy cho các tệp lớp có ý nghĩa hơn là bao gồm phẳng. Sẽ xóa +1 của tôi cho đến khi đó vì câu trả lời thường không hoạt động như hiện tại.
yeoman

13

Điều này có thể bằng cách xác định Trình tạo tùy chỉnh trong nhật thực (xem liên kết trong câu trả lời của Peter). Tuy nhiên, trừ khi dự án của bạn rất nhỏ, nó có thể làm chậm không gian làm việc của bạn. Autobuild cho các tệp lớp xảy ra tăng dần, tức là chỉ những lớp bị ảnh hưởng bởi thay đổi mới được biên dịch lại, nhưng tệp JAR sẽ phải được xây dựng lại và sao chép hoàn toàn, mỗi khi bạn lưu thay đổi.



1

Sử dụng câu trả lời của Thomas Bratt ở trên, chỉ cần đảm bảo rằng tệp build.xml của bạn được cấu hình đúng:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

(Lưu ý dấu sao đôi - nó sẽ ra lệnh xây dựng để tìm các tệp. Class trong tất cả các thư mục con.)


0

Tạo một trình khởi chạy trình xây dựng là một vấn đề vì 2 dự án không thể có cùng tên xây dựng công cụ bên ngoài. Mỗi tên phải là duy nhất. Tôi hiện đang phải đối mặt với vấn đề này để tự động hóa bản dựng của mình và sao chép JAR sang một vị trí bên ngoài.

Tôi đang sử dụng Zip Builder của IBM, nhưng đó chỉ là một sự trợ giúp nhưng không thực sự.

Mọi người có thể thử sử dụng plugin IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/l Library / Techarticles / 1212_deboer / deboer2.html # doads

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.