注意:
用Ant構建時,build path只能是單級的,如默認的src,如果是類似basePath/jsr253這樣的話,運行Ant build時會報錯,說找不到jsr253。
(此文講述的是以ant1.7.1為例子的,在windows上的eclipse進行操作的例子)
生成Ant的方法有多種,下面介紹其中較為省力的一種方式(eclipse中使用ant)
1、 生成build.xml
右擊工程名——> Export ——> General ——> Ant Buildfiles ——> Next ——> Finish,
可以看到在工程的根目錄下多了一個build.xml文件,文件上有一只螞蟻的圖標,此文件已經根據你的工程結構自動生成了相應的XML腳本,但目前只包含了編譯的功能。
2、添加生成jar的功能
雙擊打開build.xml,在<project></project>標簽內添加如下一個新的<target>標簽
<target name="jar" depends="build">
<delete file="E:/test.jar" />
<jar jarfile="E:/test.jar">
<fileset dir="bin" includes="**/*.*" />
</jar>
</target>
注解:
name:為target添加一個名字,可任意取名。
depends: 所依賴的target的名字,因為編譯后才能生成jar包,故示例中的build是編
譯功能的target的名字。
delete:刪除,后面的file的值是所需要刪除的文件的具體路徑。
Jar:生成jar包,jarfile是用來指定生成后的jar包的路徑;fileset指定生成jar包所需
包含的類文件,dir指定類文件的目錄,includes指定包含的具體文件。
測試功能是否實現:
修改<project>標簽中的default屬性,將其值改為“jar”,即上述<target>標簽中name屬性的值,保存。右擊build.xml,Run As ——> Ant Build。查看控制台輸出是否最后提示BUILD SECCESSFULL,jarfile指定的路徑下是否生成了test.jar,如果是有,則表明成功了。以下的功能都可以通過類似的方法去驗證。
3、 添加生成lar包的功能/執行某一應用
雙擊打開build.xml,在<project></project>標簽內添加如下一個新的<target>標簽
<target name="lar" depends="jar">
<delete file="E:/test.lar"/>
<exec executable="E:/largen">
<arg value="E:/test.jar"/>
</exec>
</target>
注解:
exec:執行某一應用。executable的值是所需啟動的應用的具體路徑。Arg中傳入的是需要生成lar包的jar包的路徑。
4、 添加用SSH將文件拷貝到遠程服務器上的功能
雙擊打開build.xml,在<project></project>標簽內添加如下一個新的<target>標簽
<target name="scp" depends="lar" description="copy to remote server">
<scp file="E:/test.lar" trust="true"
todir="tester@10.36.145.17:/home/tester"
password="xxxxx">
</scp>
</target>
注解:
Description:對target的描述,相當於注釋的作用。
Scp:將本地的文件同步更新到遠程的服務器上;file是文件在本地的路徑;todir是傳輸到遠程的服務器的地址,包括用戶名、IP、遠程服務器的中的具體位置;password是訪問遠程服務器時的密碼。trust屬性必須設置為true,表示可信任的,默認為false的話可能會拋錯。
此功能與前兩個功能相比會麻煩些,還需要進行如下一些操作:
1) 下載jsch.jar,放到ant目錄的lib文件夾下,然后在Eclipse中點擊Window ——> Preferences ——> Ant ——> Runtime ——> Classpath,在Ant Home Entries(Default)中把jsch.jar添加進去。Jsch.jar存在版本匹配的問題,所以如果在下載時選用的版本不對,就算添加進去了,到時運行時也會報錯的。
2) (若你使用的是虛擬機版的linux可能需執行此步驟)啟動Linux,點擊VM ——> Settings ——> Hardware ——> Network Adapter,在右邊的Network connection中選擇“Bridged”,點【OK】確認操作后,將Linux的網絡關閉重新連接,打開終端,輸入命令“ifconfig”,回車,查看IP是為外網的IP
3) 與scp類似的remote任務中,還有一個Sshexec。該任務的主要作用是,遠程執行ssh命令,所以還需在Linux上安裝它。安裝步驟:打開Linux上的終端,輸入命令“sodo apt-get install openssh-server”回車,終端便會自動去下載安裝。安裝好后,輸入命令“ps –ef | grep sshd”回車,可查看sshd是否已經啟動。
5、 添加在本地運行測試用例的功能
雙擊打開build.xml,在<project></project>標簽內添加如下一個新的<target>標簽
<target name="run" depends="jar">
<java classname="test.TestMidlet" failonerror="true" fork="yes">
<classpath refid="jsr253.classpath"></classpath>
</java>
</target>
注解:
Java:運行Java程序;classname是添加啟動類,格式為“ 包名.類名”;
failonerror可以控制當任務失敗時是否終止構建,默認為true;
Classpath:編譯后類文件存放的路徑。
6、 添加用FTP將文件拷貝到遠程服務器上的功能
<target name="ftp" depends="lar">
<ftp server="192.168.16.2" userid="root" password="" remotedir="/root">
<fileset dir="E:/test"></fileset>
</ftp>
</target>
注解:
Server:需要連接的遠程機器的IP地址。
Remotedir:訪問的FTP遠程目錄,ftp默認為其根目錄,如上表示傳送到遠程ftp下的root目錄。
Fileset:本地需上傳的文件所在的目錄。如上表示將E盤test文件夾下的所有文件上傳至遠程。
此功能與SSH一樣,都需要在ant中添加一jar包,操作如下:
1) 下載commons-net-ftp-2.0.jar,放到ant目錄的lib文件夾下,然后在Eclipse中點擊Window ——> Preferences ——> Ant ——> Runtime ——> Classpath,在Ant Home Entries(Default)中把commons-net-ftp-2.0.jar添加進去。
Ant官方用戶手冊:http://ant.apache.org/manual/
- jsch-0.1.43-jdk14.jar (182.6 KB)
- 下載次數: 10
- commons-net-ftp-2.0.jar (89 KB)
- 下載次數: 34
- ant-contrib-1.0b3.jar (219 KB)
- 下載次數: 9