- 檔案管理- copy, move, mkdir, rename等
- ANT 能從不同來源取得檔案的方法,像是 ftp, cvs, svn, http get 等
- 也能用 ftp 來幫妳佈署檔案到遠端主機
- 壓縮檔案
- 支援 zip, unzip, jar, war, 幫妳生成包裝檔案
- 利用 JDBC 設定資料庫
- 利用 Telnet 幫妳設定遠端的 Server,ex.重開 weblogic
- 支援 CVS, SVN 幫妳作版本控管
- 利用 JUnit 自動幫妳作測試,並產生測試報告
- XSLT 幫妳轉換 XML 的文件
- XDOCLET 幫妳自動生成程式碼
- 把 JSP 轉成 JAVA 可指定 tomcat 或 weblogic
- 幫妳從檔案取代字串,通常用在 html sign 上最後修改日期的自動化
例:把 JSP 上傳測試機
- 傳統上我們得用 ftp GUI client 貼上去,但每次改一段要測試就得重覆這個動作,在程式間跳來跳去,相當不方便。
- 聰明一點的,會把利用 ftp 的 command 指令寫成巨集執行這個重覆的動作ftp 命令檔如下:
#deploy.ftp然後要上傳時輸入
root
rootpassword
cd /deploy/webapp
put /local/file1.jsp
put /local/file2.jsp
cd /deploy/classes
put /local/file1.class
put /local/file2.class
ftp -s deploy.ftp批次執行上述的 ftp 命令
看看 ANT 怎麼作?
可以把description="deploy files to pcstest machine" >
remotedir="${pcstest.operation.dir}"
userid="${pcstest.ftp.userid}"
password="${pcstest.ftp.password}" depends="yes" binary="no">
ant deploy.pcstest就可以執行
description="create a temp dir for make ncqmda release file" >
再看看 ANT 的 ZIP 指令
description="create a nckmqa release zip" >
有沒有發現指定檔案集的方式都是用
ANT 可統一設定所有的資源,包括 SQL, Telnet, CVS, http GET, mail
可遠端操作 Telnet 不用在使用其它的 cliet 去作這件事, 以下看看如何重開 weblogic。當然透過 JDBC 也可用 SQL 設定資料庫
userid="${pcstest.telnet.userid}"
password="${pcstest.telnet.password}">
cd ${pcstest.nckmdomain.dir}
stopWebLogic.sh
nohup startWebLogic.sh &
cvs 或 svn 也通用,用來作版控。
driver="${db.pcs.driver}"
url="${db.pcs.url}"
userid="${db.pcs.userid}"
password="${db.pcs.password}">
CREATE TABLE oproom_material_record_detail2
(
oprmrd2_hospital_no char(1),
oprmrd2_operation_date char(8),
oprmrd2_room_no char(2),
oprmrd2_seq_no int,
oprmrd2_material_date char(8),
oprmrd2_material_time char(9),
oprmrd2_r1 char(4),
oprmrd2_r2 char(4),
oprmrd2_r3 char(4),
oprmrd2_material_no char(9),
v1f char(1),
v2f char(2),
v3f char(3),
r1f char(1),
r2f char(2),
r3f char(3)
);
自動寄 e-mail。
從 http 抓檔案
The ${buildname} nightly build has completed
dest="statement.html"
username="1214";
password="secret"/>
ANT 能自動比較檔案的新舊,來作動作
ANT 能從不同來源取得檔案的方法, 像是 ftp, unzip, copy, cvs 等, 其中一個重點是當目的檔案比來源檔案舊時, 應該不可覆蓋來源檔案,相關的屬性如下[v1|v2] 第一個表預設值
ftp.depends=[no|yes] yes 表不覆蓋
ftp.newer=[no|yes] yes 表不覆蓋
unzip.overwrite=[true|false] false 表不覆蓋
copy.overwrite=[false|true]false 表不覆蓋
直接看我的範例檔吧!
operation
location="${build.test.dir}/report"/>
value="jdbc:mysql://localhost/pss?useUnicode=true&characterEncoding=big5"/>
value="jdbc:informix-sqli://192.168.11.112:1526/pcs:authority:INFORMIXSERVER=nckmdb_tcp"/>
value="${pcstest.nckmdomain.dir}/applications/hospitalization"/>
value="${pcstest.ap.dir}/DefaultWebApp"/>
value="${pcstest.web.dir}/hospitalization3/operation"/>
value="${pcstest.web.dir}/WEB-INF/classes/"/>
location="d:\nckm\DefaultWebApp\hospitalization3"/>
value=":pserver:nckmcvs:nckmcvs@ftp-proxy.syscom.com.tw:/cvshome/nckm"/>
value="nckm_s"/>
description="setup a environment for this project" >
description="put file to test machine" >
debug="on"
source="1.4"
target="1.4">
description="unit test" >
name="edu.ncku.hosp.OPRMaterialRecordTXTest"/>
description="deploy files to pcstest machine" >
remotedir="${pcstest.operation.dir}"
userid="${pcstest.ftp.userid}"
password="${pcstest.ftp.password}" depends="yes" binary="no">
remotedir="${pcstest.web.classes.dir}"
userid="${pcstest.ftp.userid}"
password="${pcstest.ftp.password}" depends="yes" binary="no">
remotedir="${test.server.operation}"
userid="root" password="wyj0806" depends="no" binary="no">
description="backup" >
value="${backup}/${ant.project.name}_${DSTAMP}${TSTAMP}.zip"/>
description="create a temp dir for make ncqmda release file" >
description="create a nckmqa release zip" >
description="clear release dir">
description="put release into nckmqa" >
remotedir="nckmqa"
userid="root"
password="wyj0806"
depends="yes"
binary="no">
description="restore src to initialize state" >
message="import procject files: ${scm}"/>
test.server.operation.dir=${test.server.operation}
userid="${pcstest.telnet.userid}"
password="${pcstest.telnet.password}">
cd ${pcstest.nckmdomain.dir}
stopWebLogic.sh
nohup startWebLogic.sh &
driver="${db.pcs.driver}"
url="${db.pcs.url}"
userid="${db.pcs.userid}"
password="${db.pcs.password}">
CREATE TABLE oproom_material_record_detail2
(
oprmrd2_hospital_no char(1),
oprmrd2_operation_date char(8),
oprmrd2_room_no char(2),
oprmrd2_seq_no int,
oprmrd2_material_date char(8),
oprmrd2_material_time char(9),
oprmrd2_r1 char(4),
oprmrd2_r2 char(4),
oprmrd2_r3 char(4),
oprmrd2_material_no char(9),
v1f char(1),
v2f char(2),
v3f char(3),
r1f char(1),
r2f char(2),
r3f char(3)
);
無廢話ANT 安裝
- 下載ANT
- 解壓縮至 c:\ant
- 設定環境變數 JAVA_HOME=C:\jdk
- 設定環境變數 ANT_HOME=C:\ant
- 設定環境變數 PATH=%ANT%\bin
使用 FTP task
安裝以下的庫至 %ant_home%/lib 下- jakarta-oro-2.0.8.jar
- commons-net-1.4.0.jar
classname="org.apache.tools.ant.taskdefs.optional.net.FTP"/>
沒有留言:
張貼留言