2009-07-13 68 views
44

Tôi có một dự án Java Eclipse. Nó chứa một thư mục có tên "dist". Trong thư mục đó là tệp .jar.Làm cách nào để tự động tạo tệp .jar trong một dự án Java Eclipse

Làm cách nào tôi có thể thiết lập mọi thứ trong dự án này để đảm bảo tệp .jar này được cập nhật bất kỳ lúc nào một trong các tệp .java trong dự án đã được biên dịch lại?

Cảm ơn.

+0

bản sao của http://stackoverflow.com/questions/1062941/build-project-into-a-jar-automatically -in-eclipse –

Trả lời

4

Mẫu chung là làm việc với các tệp lớp trong dự án (dự án có thể được thêm vào các dự án xây dựng đường dẫn khác và được sử dụng khi chạy thử), vì vậy bạn không cần tệp jar trong quá trình phát triển.

Cách tiếp cận tối ưu để thêm bước xây dựng tự động là viết kịch bản kiến, bao gồm trong dự án của bạn và sau đó bạn có thể thực thi tập lệnh kiến ​​được đưa vào bản dựng của dự án. Vì vậy, như kiến ​​có một công việc xây dựng khá căng thẳng jar này không phải là quá nhiều nỗ lực nếu bạn cần tập tin jar tất cả các thời gian. See để khởi động.

2

Tạo dự án Tiện ích J2EE (Util). Nó cho phép bạn tạo một liên kết với một dự án J2EE (ProjectX). Khi bạn chỉnh sửa các thuộc tính của ProjectX phụ thuộc vào dự án Util, nó cho thấy Util là Util.jar. Với sự phụ thuộc được khai báo, Eclipse sẽ xây dựng Util.jar khi nó phải xây dựng dự án Util. Nếu bạn có tự động xây dựng hoạt động cho dự án Util, tệp .jar sẽ được giữ đồng bộ mỗi khi dự án được xây dựng. Nếu dự án đích của bạn không phải là một J2EE, bạn vẫn có thể sử dụng giải pháp này nhưng sử dụng một dự án mẹ J2EE giả.

Dưới đây là liên kết tới các trang trợ giúp cho việc sử dụng các nhiệm vụ ANT để xây dựng một tập tin .zip từ bên trong Eclipse: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_generating_ant.htm

Một giải pháp thay thế là sử dụng các plugin Zip. Chúng tôi đã sử dụng cách đây hơn 5 năm nhưng đã dừng lại khi WSAD hỗ trợ các dự án phụ thuộc dưới dạng tệp .jar.

34

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


Bước 1 Tạo một file build.xml và thêm vào Package 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> 

Eclipse nên trông giống như hình dưới đây. Lưu ý biểu tượng Ant trên tệp build.xml. Build.xml in Eclipse Project

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 Nhà xây dựng - Chọn Mới - Chọn Ant Build - Trong tab Chính, hoàn thành đường dẫn đến tệp build.xml trong thư mục bin.

Ant builder configuration Build step - Targets Tab

Kiểm tra đầu ra

cửa sổ đầu ra Eclipse (tên Console) sẽ hiển thị như sau sau khi một 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 
+1

Điều này làm việc hoàn hảo cho tôi. Điều này sẽ được đánh dấu là câu trả lời đúng. – cgTag

+1

Điều này làm việc tuyệt vời, ngoại trừ tôi muốn bao gồm tất cả các phụ thuộc là tốt! Tôi sẽ làm như thế nào? – anon58192932

+1

Tôi hỏi giống như @advocate. Tệp jar của tôi hiện chỉ có 346 byte, trong khi nó cần có 50kB! – Rodrigo

0

câu trả lời của Thomas làm việc, nhưng jar tệp mà nó tạo ra không phải là tệp mà bạn có thể sử dụng để thực sự chạy ứng dụng.

tôi đã kết thúc với:

<?xml version="1.0" ?> 
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TDSz Data Mover" default="CreateJar"> 
    <target name="CreateJar" description="Create Jar file"> 
     <delete file="DataMover.jar"/> 
     <jar jarfile="DataMover.jar" basedir="bin/" includes="**/*.class **/Messages*.*" " update="no"> 
      <zipfileset dir="D:/Java/mylib" erroronmissingarchive="true"> 
       <include name="*.jar" /> 
      </zipfileset> 
      <manifest> 
       <attribute name="Main-Class" value="some.package.and.app"/> 
      </manifest>    
     </jar> 
    </target> 
</project> 

Không biết nếu có điều gì đã thay đổi trong kiến ​​kể từ khi câu trả lời này đã được đưa ra, nhưng phải mất một số đào để thực sự có được nó làm việc. Rất nhiều các giải pháp trong hướng dẫn là câu trả lời duy nhất một phần ...

Những thay đổi chính:

  • Added một xóa cho file jar như nó không được tái sinh nó khi tôi reran kiến ​​xây dựng sau khi thay đổi tệp xây dựng.
  • Đã thêm tệp kê khai để đặt tệp thi hành đúng cách.
  • Kéo trong một số file .jar như libs
  • Pull trong các tập tin lỗi_ cho NLS hỗ trợ

Netbeans làm cho điều này trở nên dễ dàng hơn nhiều - chỉ cần kiểm tra một vài hộp.

[Edited để khắc phục vấn đề với thẻ jar chấm dứt không đúng cách và kéo trong các tập tin .jar]

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