- 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就停止編譯,不再繼續編譯剩下的代碼。這種方式給一些單元測試或者腳本類的工程帶來了麻煩,因爲這類工程中的錯誤往往只是一個腳本的語法問題,並不影響其他腳本。所以這類工程希望儘可能多的編譯全部代碼,而不是因爲一個編譯錯誤而停止。