轉---JavaWeb配置 運用Ant編譯Eclipse項目

  • Eclipse 裏面ant編譯解決辦法:


/運用Ant編譯Eclipse項目
//Ant學習
這裏,我們的目標是以Eclipse創建一個新的Java項目,運用Ant來編譯,並將最後的.class文件存儲在JAR文件中。
1.先創建一個JAVA項目
比如創建了一個Ch05_02的項目,項目中只有如下一個類:
package org.eclipsebook.ch05;

public class Ch05_02 {


public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("This code was built using Ant.");
  
}

}
2.對“Package Explorer”視圖中的項目按鼠標右鍵,選“New”->“File”選項來創建build.xml文件。在“File Name”字段中輸入

“build.xml”,點擊“Finish”按鈕,創建build.xml完畢。
3.寫“build.xml”文件。我們要創建對應到即將使用的目錄的諸多屬性(property):src、bin、一個放JAR文件的目錄jardir(我們會在bin

目錄下建一個lib目錄來存儲JAR文件)、JAR文件本身jarfile(我們稱此文件爲Ch05_02.jar)。依次發設定這些屬性,可以讓你在此編譯文件

中的其他地方,以此引用這些目錄名稱。我們也會設定build.compiler的屬性,指向Ant日後會使用的JDT編譯器的適配器(adapter)--

org.eclipse.jdt.core.JDTCompilerAdapter。
build.xml完整內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Ch05_02" default="Main Build" basedir=".">
<property name="bin" location="bin"/>
<property name="src" location="src"/>
<property name="jardir" location="${bin}/lib"/>
<property name="jarfile" location="${jardir}/Ch05_02.jar"/>
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>


<target name="Main Build" depends="Initialize,Compile,Jar">
    <echo message="Ant at work!"/>
</target>


<target name="Initialize">
    <delete dir="${bin}"/>
    <delete dir="${jardir}"/>
    <mkdir dir="${bin}"/>
    <mkdir dir="${jardir}"/>
</target>


<target name="Compile" depends="Initialize">
    <javac srcdir="${src}" destdir="${bin}">
    </javac>
</target>

 
<target name="Jar" depends="Initialize,Compile">
    <jar destfile="${jarfile}" basedir="${bin}"/>
</target>

</project>
以上就是build.xml。

但是你直接選定項目中build.xml並單擊鼠標右鍵,選“Run As -- Ant Build”選項,會報告一個“Class not found:

org.eclipse.jdt.core.JDTCompilerAdapter”。這時你需要選“Run As -- Ant Build...”選項,在彈出的對話框中選擇“JRE”選項卡,在

“Runtime JRE”欄中選擇“Run in the same JRE as the workspace”,此時就能用Ant成功編譯Eclipse工程了。這也許不是最好的方法,需

要大家共同探索



  • Ant 編譯解決辦法:


我們經常使用ant來編譯我們的Eclipse項目,但有時ant中javac任務往往只能編譯一部分代碼。當代碼有編譯錯誤時,ant就停止編譯,不再繼續編譯剩下的代碼。這種方式給一些單元測試或者腳本類的工程帶來了麻煩,因爲這類工程中的錯誤往往只是一個腳本的語法問題,並不影響其他腳本。所以這類工程希望儘可能多的編譯全部代碼,而不是因爲一個編譯錯誤而停止。


但我們在Eclipse裏面編譯工程時,卻沒有這樣的問題,Eclipse將會把所有的代碼都編譯一遍,最後顯示所有的錯誤。這是因爲這時編譯的是Eclipse自己實現的Java編譯器。我們可以利用Eclipse自帶的編譯器,改進我們的ant腳本。

實現起來很簡單:
1. 在ant腳本中加入一行:
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
如果javac任務中有這麼一行,則刪之:
compiler="javac1.5"

2. 下載ecj.jar,可以從http://download.eclipse.org/eclipse/downloads/下載,選擇eclipse的版本號,然後在"JDT Core Batch Compiler"這個類別中就可以下載對應版本的ecj.jar了。

3. 運行ant命令,加上如下參數:
ant -f build.xml -lib ecj.jar

4. 如果遇到OutOfMemory的錯誤在編譯過程中,則加上如下的環境變量:
set ANT_OPTS=-Xmx1024m
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章