2009-07-13 97 views
44

我有一個Eclipse Java項目。它包含一個名爲「dist」的文件夾。在那個文件夾中是一個.jar文件。如何在Eclipse Java項目中自動生成.jar文件

我該如何設置這個項目中的內容,以確保這個.jar文件在項目中的某個.java文件被重新編譯時更新?

謝謝。

+0

重複http://stackoverflow.com/questions/1062941/build-project-into-a-jar-automatically的-in-eclipse – 2011-07-27 01:03:15

回答

4

一個常見的模式是針對項目中的類文件(項目可以添加到其他項目構建路徑並在測試時在運行時使用),因此您在開發期間實際上不需要該jar文件。

添加自動構建步驟的常規方法是編寫一個ant腳本,將其包含在您的項目中,然後您可以執行包含在項目構建中的ant腳本。因此,如果ant有一個非常直接的jar構建任務,那麼如果您始終需要jar文件,那麼這不會太費力。 See爲首發。

2

創建一個J2EE實用程序項目(Util)。它允許您創建與J2EE項目(ProjectX)的關聯。當您編輯ProjectX的屬性以依賴於Util項目時,它將Util顯示爲Util.jar。在聲明瞭依賴關係的情況下,Eclipse將在構建Util項目時構建Util.jar。如果您爲Util項目自動生成活動,則每次構建項目時,.jar文件都將保持同步。如果您的目標項目不是J2EE版本,那麼仍然可以使用此解決方案,但使用虛擬J2EE父項目。

這裏是鏈接到幫助頁面使用Ant任務從Eclipse構建一個.zip文件:http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_generating_ant.htm

另一種解決方法是使用郵編插件。我們在5年前使用過這個功能,但當WSAD將依賴項目的支持包含爲.jar文件時就停止了。

34

創建一個Ant文件並告訴Eclipse構建它。只有兩個步驟,每個步驟都很容易,下面逐步說明。


步驟1 創建一個build.xml文件,並添加到包資源管理器:

<?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應該會看起來像下面的截圖。請注意build.xml上的Ant圖標。 Build.xml in Eclipse Project

步驟2 在項目的根節點上單擊鼠標右鍵。 - 選擇屬性 - 選擇建設者 - 選擇新 - 選擇Ant構建 - 在主選項卡中,完成路徑在文件夾中的build.xml文件。

Ant builder configuration Build step - Targets Tab

檢查輸出

Eclipse的輸出窗口(稱爲控制檯)應顯示生成後如下:

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

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

這對我來說非常合適。這應該被標記爲正確答案。 – cgTag 2012-09-18 21:48:48

0

托馬斯的回答工作,但罐子它生成的文件不是可以用來實際運行應用程序的文件。

我結束了:

<?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> 

不知道如果事情在螞蟻已經改變,因爲這個答案給出,但它採取了一些挖掘真正得到它的工作。很多教程的解決方案只有部分答案...

的主要變化:

  • 增加了一個JAR文件中刪除,因爲它沒有再生,當我 改變後重新運行Ant構建構建文件。
  • 添加了一個清單來正確設置可執行文件。
  • 拉一些.jar文件作爲庫
  • 拉的訊息:文件NLS支持

Netbeans的使這個容易得多 - 只是檢查了幾個箱子。

[編輯,以解決問題與不正確地終止罐子的標籤,並在.jar文件拉]

相關問題