ant入門教程(一)Hello World with Ant(英文教程文檔翻譯)(連載)
只能夠翻譯個(gè)大概意思,希望朋友們別見怪...
教程: Hello World with Ant
本文檔提供了一步一步用ANT開始JAVA項(xiàng)目構(gòu)建的教程,不包括更深入了解JAVA與ANT,本教程的目的是為了讓你看,使用ANT最簡單的步驟。
項(xiàng)目的準(zhǔn)備:
我們希望從不同的來源所產(chǎn)生的文件,因此我們的Java源文件將源文件夾中。 所有生成的文件應(yīng)根據(jù)建設(shè) ,并分裂成數(shù)個(gè)子目錄個(gè)人步驟: 班我們匯編文件和 JAR為我們自己的白佳文件。
我們希望從所產(chǎn)生的文件來分離源文件,因此我們的JAVA源文件將在
src folder。所有生成的文件應(yīng)根據(jù)構(gòu)建方式,并為單獨(dú)的步驟分成數(shù)個(gè)子目錄:classes是我們編譯的文件,jar是我們JAR包文件。
我們必須創(chuàng)建一個(gè)唯一的src目錄:
md src
接著是創(chuàng)建一個(gè)打印固定信息的標(biāo)準(zhǔn)輸出的JAVA代碼,所以僅需要寫下這些代碼到 src\oata\HelloWorld.java. 目錄:
package oata;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
現(xiàn)在我們開始編譯和運(yùn)行:
md build\classes
javac -sourcepath src -d build\classes src\oata\HelloWorld.java
java -cp build\classes oata.HelloWorld
(這里我想說明下,可能有些新手不知道怎么樣編譯和運(yùn)行上面的程序,我在這里簡單演示下:
首先運(yùn)行--cmd--進(jìn)入你項(xiàng)目所在的路徑(cd +目錄路徑即可):
然后在上面代碼拷貝運(yùn)行
)
運(yùn)行后 將在控制臺打印 Hello World,并且你將現(xiàn)在在的工程目錄下多了一個(gè)build文件夾,build 下有一個(gè)classes文件夾,classes文件夾下正是編譯后的HELLOWORLD的class文件,在通過觀察:
md build\classes --在當(dāng)前項(xiàng)目路徑下創(chuàng)建了build\classes子路徑
javac -sourcepath src -d build\classes src\oata\HelloWorld.java --編譯JAVA文件并將其放到classes目錄下
java -cp build\classes oata.HelloWorld --運(yùn)行classes目錄下的HelloWorld.java字節(jié)碼文件。
創(chuàng)建一個(gè) jar-file 不是很困難,但是創(chuàng)建一個(gè)啟動(dòng)的 jar-file 需要更多的步驟:創(chuàng)建一個(gè)包含啟動(dòng)級的類文件,創(chuàng)建一個(gè)目標(biāo)目錄和歸檔文件:
echo Main-Class: oata.HelloWorld>myManifest
md build\jar
jar cfm build\jar\HelloWorld.jar myManifest -C build\classes .
java -jar build\jar\HelloWorld.jar
注意:不能有任何空格運(yùn)行時(shí)

這是成功運(yùn)行后的目錄。
四步執(zhí)行應(yīng)用:
在完成僅用JAVA完成后我們必須考慮我們的構(gòu)建過程。我們必須編譯我們的代碼,否則我們不能啟動(dòng)這個(gè)項(xiàng)目。啊-開始-是的,我們能提供一個(gè)目標(biāo)。我們應(yīng)該封裝我們的應(yīng)用。現(xiàn)在僅僅只有一個(gè)class文件,不是如果你想要提供一個(gè)下載,沒有人想下載幾百文件(想象一下一個(gè)復(fù)雜的Swing GUI --所以我們必須創(chuàng)建一個(gè)JAR文件(類似于EXE這種直接點(diǎn)擊就可啟動(dòng)程序),一個(gè)啟動(dòng)JAR文件將會(huì)很不錯(cuò)。。。而這是一個(gè)很好的實(shí)踐為有一個(gè)干凈的目標(biāo),這會(huì)刪除所有生成的東西。許多失敗將可以解決只因?yàn)橐粋€(gè) “clean build”)
默認(rèn)的情況下Ant使用 build.xml 作為構(gòu)建文件的名稱,所以我們的.\build.xml 將會(huì)是:
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="oata.HelloWorld"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/HelloWorld.jar" fork="true"/>
</target>
</project>
現(xiàn)在你可以編譯打包運(yùn)行應(yīng)用了
ant compile
ant jar
ant run
或者更簡短的命令
ant compile jar run
While having a look at the buildfile, we will see some similar steps between Ant and the java-only commands:
同時(shí)我們可以看一下這個(gè)構(gòu)建文件,我們可以看見許多類似的步驟Ant和java命令之間
java-only |
Ant |
md build\classes
javac
-sourcepath src
-d build\classes
src\oata\HelloWorld.java
echo Main-Class: oata.HelloWorld>mf
md build\jar
jar cfm
build\jar\HelloWorld.jar
mf
-C build\classes
.
java -jar build\jar\HelloWorld.jar
|
<mkdir dir="build/classes"/>
<javac
srcdir="src"
destdir="build/classes"/>
<!-- automatically detected -->
<!-- obsolete; done via manifest tag -->
<mkdir dir="build/jar"/>
<jar
destfile="build/jar/HelloWorld.jar"
basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="oata.HelloWorld"/>
</manifest>
</jar>
<java jar="build/jar/HelloWorld.jar" fork="true"/>
|
增強(qiáng)構(gòu)建文件
...(待續(xù)。。今天就暫時(shí)翻譯也學(xué)習(xí)到這里,對ANT也有了一個(gè)初步的認(rèn)識,也知道了我們現(xiàn)在項(xiàng)目中的build.xml是用來作甚么的了,說白了ANT就是一個(gè)基于XML文件的構(gòu)建工具,可以將類似于class啊 jar啊,通過編譯項(xiàng)目,設(shè)定相應(yīng)目標(biāo)路徑,進(jìn)行一個(gè)文件的整理編譯發(fā)布。。呵呵 這當(dāng)然是很膚淺的,但是對于項(xiàng)目的應(yīng)用足夠了。。不會(huì)就對著實(shí)例,在看API了解。。。)