此篇主要讲实践,大多数情况下是直接贴的代码了
build.properteis:
#created by myFirstAntPrj
#Sat Jan 16 14:25:56 CST 2010
debug=true
optimize=false
cvsroot=:pserver:username@ip:/usr/local/myFirstPrjdev
myFirstPrjCloudHome=myFirstPrjCloud
myFirstPrjCloudDistDir=dist
JAVA_HOME=F:/myFirstAntPrj-cloud/jdk1.6.0_16
FLEX_HOME=sdks/4.0.0
FLEX_APP_SRC_HOME=${myFirstPrjCloudHome}/console-flex/src/main/flex
CONSOLE_CONTEXT_ROOT=test
#将构建后生成的myFirstPrj-cloud.war和datacenter.war上传到测试服务器
serverIp=192.168.6.240
serverUser=root
serverPwd=123456
serverConsoleDir=/opt/myFirstAntPrj-cloud/webconsole/domains/mydomain/applications
serverDatacenterDir=/opt/myFirstAntPrj-cloud/datacenter/domains/mydomain/applications
serverConsoleDeployDir=/opt/myFirstAntPrj-cloud/webconsole/domains/mydomain/deploy
serverDatacenterDeployDir=/opt/myFirstAntPrj-cloud/datacenter/domains/mydomain/deploy
build.xml:
哌
file="${FLEX_APP_SRC_HOME}/Main.mxml" actionscript-file-encoding="UTF-8"
keep-generated-actionscript="false" incremental="true" context-root="${CONSOLE_CONTEXT_ROOT}" locale="zh_CN" strict="true"
output="${myFirstPrjCloudDistDir}/flex/Main.swf" debug="${debug}" >
title="test"
application="console-flex" bgcolor="#ffffff"
width="100%" height="100%" swf="Main"
history="true" version-major="10.0"
output="${myFirstPrjCloudDistDir}/flex"
/>
file="${FLEX_APP_SRC_HOME}/@{file}.mxml" actionscript-file-encoding="UTF-8"
keep-generated-actionscript="false" incremental="true" context-root="${CONSOLE_CONTEXT_ROOT}" locale="zh_CN" strict="true"
output="${myFirstPrjCloudDistDir}/flex/@{file}.swf" debug="${debug}" >
build.bat:
@echo off
set ANT_OPTS=-server -Xms512m -Xmx1024m -XX:MaxPermSize=400m
F:\myFirstAntPrj-cloud\apache-ant-1.7.1\bin\ant %*
pause
[color=red]注意:[/color]其中scp需要特定jar包支持
Scp task是Ant的一个optional task, 所以要运行这个task, 首先需要解决dependencies — jsch(java对ssh2的实现). 注: jsch需要0.1.29以上版本. 可以去Jsch主页下载.
*************************待整理东东*************************
ant可以使用扩展SCP标签实现远程部署及上传,但是如果使用ANT远程删除Linux上的文件夹,应该如何操作呢?
远程上传(需要特定的jar包支持):
++++++Ant删除文件夹++++++++++++
#
#
#
#
在执行Delete Task时使用文件过滤的实例
(1)删除单个文件的实例:
这个例子的作用是删除lib目录下的ant.jar文件。
(2)删除目录的实例:
这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。
(3)删除所有备份文件和空的目录的例子:
参考网址:
http://soft-app.iteye.com/blog/928871
http://blackbaby.iteye.com/blog/904045
http://thiner.iteye.com/blog/975040
http://nstar.iteye.com/blog/129653
http://chenjumin.iteye.com/blog/425404
2: http://topic.csdn.net/t/20060617/13/4827140.html
3、*************************************************
CruiseContorl
http://cruisecontrol.sourceforge.net/
可以定时根据ant脚本构建
提供E-mail通知
还有一个web界面
****************************************************
采用日构建很有效,但持续集成会更有效的多。
更详细的信息,请参见:
http://hyysguyang.iteye.com/admin/show/38610
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
嗯,的确是。常用两个功能:Macro,Import。特别是Import,可以做到定制一个通用模板,然后每个子项目都import进来,override抽象的target。就像模板模式一样,用来简化构建脚本还是很不错的。
这篇文章不错:
http://www.oracle.com/technology/pub/articles/bodewig_ant1.6.html