- 浏览: 489462 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
wang1352083:
正在搭建tomcat源码.一会儿参照楼主经验搭建spring源 ...
Eclipse中阅读开源项目代码 -
w123456789zzzz:
谢谢你,问题解决了,楼主万岁!!
eclipse中如何安装插件 -
xiaoLee:
...
软件性能测试论文草稿 -
铃儿响叮当:
...
使用firefox调试js -
gogopengyou:
很细心啊
eclipse中如何安装插件
此篇主要讲实践,大多数情况下是直接贴的代码了
build.properteis:
build.xml:
build.bat:
注意:其中scp需要特定jar包支持
Scp task是Ant的一个optional task, 所以要运行这个task, 首先需要解决dependencies — jsch(java对ssh2的实现). 注: jsch需要0.1.29以上版本. 可以去Jsch主页下载.
*************************待整理东东*************************
ant可以使用扩展SCP标签实现远程部署及上传,但是如果使用ANT远程删除Linux上的文件夹,应该如何操作呢?
远程上传(需要特定的jar包支持):
<scp file="${ApusicCloudDistDir}/console-web/apusic-cloud.war" todir="${serverUser}:${serverPwd}@${serverIp}:${serverConsoleDir}" trust="true" />
++++++Ant删除文件夹++++++++++++
<delete>
<fileset dir= ". " includes= "**/*.class "/>
</delete>
# <!-- 删除文件夹 -->
# <target name="delete">
# <delete dir="${class.root}" />
# </target>
在执行Delete Task时使用文件过滤的实例
(1)删除单个文件的实例:
<delete file="/lib/ant.jar"/>
这个例子的作用是删除lib目录下的ant.jar文件。
(2)删除目录的实例:
<delete dir="lib"/>
这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。
(3)删除所有备份文件和空的目录的例子:
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.bak"/>
</delete>
参考网址:
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
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:
<?xml version="1.0"?> <project name="com.myFirstAntPrj.cloud.build" default="build" basedir="."> <property file="build.properties" /> <taskdef resource="org/apache/maven/artifact/ant/antlib.xml"> <classpath path="${basedir}/lib/maven-ant-tasks-2.1.1.jar"> </classpath> </taskdef> <taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" /> <taskdef resource="net/sf/antcontrib/antlib.xml"> <classpath> <pathelement location="${basedir}/lib/ant-contrib-1.0b3.jar" /> </classpath> </taskdef>哌 <path id="boot.classpath"> <fileset dir="${JAVA_HOME}/jre/lib"> <include name="**/*.jar" /> </fileset> </path> <target name="prepare"> <mkdir dir="${myFirstPrjCloudDistDir}" /> <mkdir dir="${myFirstPrjCloudDistDir}/console-web" /> <mkdir dir="${myFirstPrjCloudDistDir}/datacenter" /> </target> <target name="build" depends="prepare,cvscheckout,builddatacenter,buildconsole-web"> </target> <target name="cvscheckout"> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/common" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/console-core" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/console-flex" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/console-web" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/datacenter" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/datacenter-pojo" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/ovf" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/ovf-pojo" dest="${basedir}" /> <cvs cvsRoot="${cvsroot}" package="myFirstPrjCloud/virtual" dest="${basedir}" /> <delete dir="${myFirstPrjCloudHome}/common/target/"/> <delete dir="${myFirstPrjCloudHome}/console-core/target/"/> <delete dir="${myFirstPrjCloudHome}/console-flex/target/"/> <delete dir="${myFirstPrjCloudHome}/console-web/target/"/> <delete dir="${myFirstPrjCloudHome}/datacenter/target/"/> <delete dir="${myFirstPrjCloudHome}/datacenter-pojo/target/"/> <delete dir="${myFirstPrjCloudHome}/ovf/target/"/> <delete dir="${myFirstPrjCloudHome}/ovf-pojotarget/"/> <delete dir="${myFirstPrjCloudHome}/virtual/target/"/> </target> <target name="buildcommon"> <java-compile project="common"/> <mvn pom="${myFirstPrjCloudHome}/common/pom.xml"> <arg value="install" /> </mvn> </target> <target name="buildconsole-core" depends="buildcommon"> <java-compile project="console-core"/> <mvn pom="${myFirstPrjCloudHome}/console-core/pom.xml"> <arg value="install" /> </mvn> </target> <target name="buildconsole-flex" depends="wrapper"> <flex-compile file="module/MainFrameModule" /> <!--<flex-compile file="Main"/>--> <flex-compile file="module/AppPlatformModule" /> <flex-compile file="module/DatacenterModule" /> <flex-compile file="module/EventManagementModule" /> <flex-compile file="module/HomeModule" /> <flex-compile file="module/MainFrameModule" /> <flex-compile file="module/MonitorCenterModule" /> <flex-compile file="module/ResourceManagementModule" /> <flex-compile file="module/SystemConfigurationModule" /> <flex-compile file="module/UserManagementModule" /> <flex-compile file="module/VitrualApplianceModule" /> <copydir dest="${myFirstPrjCloudHome}/console-web/WebContent/resource/swf" src="${myFirstPrjCloudDistDir}/flex" forceoverwrite="true"> <include name="**/*.swf" /> <include name="history/**"/> <include name="*.js"/> <include name="*.html"/> </copydir> <copydir dest="${myFirstPrjCloudHome}/console-web/WebContent/resource/swf" src="${myFirstPrjCloudHome}/console-flex/src/main/flex" forceoverwrite="true"> <include name="assets/**" /> <include name="config/**" /> <include name="locale/**" /> </copydir> </target> <target name="buildconsole-web" depends="prepare,buildconsole-core,buildconsole-flex" > <delete dir="${myFirstPrjCloudHome}/console-web/WebContent"> <include name="config/**" /> </delete> <java-compile project="console-web"/> <delete dir="${myFirstPrjCloudHome}/console-web/target" includes="**/CVS" /> <mvn pom="${myFirstPrjCloudHome}/console-web/pom.xml"> <arg value="package" /> </mvn> <copyfile dest="${myFirstPrjCloudDistDir}/console-web/myFirstAntPrj-cloud.war" src="${myFirstPrjCloudHome}/console-web/target/console-web-1.0-SNAPSHOT.war" /> <!--<delete dir="${serverUser}:${serverPwd}@${serverIp}:${serverConsoleDeployDir}"/>--> <scp file="${myFirstPrjCloudDistDir}/console-web/myFirstAntPrj-cloud.war" todir="${serverUser}:${serverPwd}@${serverIp}:${serverConsoleDir}" trust="true" /> </target> <target name="builddatacenter" depends="prepare,buildcommon,builddatacenter-pojo,buildovf-pojo,buildvirtual"> <java-compile project="datacenter"/> <mvn pom="${myFirstPrjCloudHome}/datacenter/pom.xml"> <arg value="package" /> </mvn> <copyfile dest="${myFirstPrjCloudDistDir}/datacenter/datacenter.war" src="${myFirstPrjCloudHome}/datacenter/target/datacenter-1.0-SNAPSHOT.war" /> <!--<delete dir="${serverUser}:${serverPwd}@${serverIp}:${serverDatacenterDeployDir}"/>--> <scp file="${myFirstPrjCloudDistDir}/datacenter/datacenter.war" todir="${serverUser}:${serverPwd}@${serverIp}:${serverDatacenterDir}" trust="true" /> </target> <target name="builddatacenter-pojo" depends="buildcommon"> <java-compile project="datacenter-pojo"/> <mvn pom="${myFirstPrjCloudHome}/datacenter-pojo/pom.xml"> <arg value="install" /> </mvn> </target> <target name="buildovf" depends="buildcommon"> <java-compile project="ovf"/> <mvn pom="${myFirstPrjCloudHome}/ovf/pom.xml"> <arg value="install" /> </mvn> </target> <target name="buildovf-pojo" depends="buildcommon,buildovf"> <java-compile project="ovf-pojo"/> <mvn pom="${myFirstPrjCloudHome}/ovf-pojo/pom.xml"> <arg value="install" /> </mvn> </target> <target name="buildvirtual" depends="buildcommon"> <java-compile project="virtual"/> <mvn pom="${myFirstPrjCloudHome}/virtual/pom.xml"> <arg value="install" /> </mvn> </target> <target name="clean"> <delete dir="${myFirstPrjCloudHome}" /> <delete dir="${myFirstPrjCloudDistDir}" /> </target> <target name="allclean"> <mvn pom="${myFirstPrjCloudHome}/common/pom.xml"> <arg value="clean" /> </mvn> <mvn pom="${myFirstPrjCloudHome}/console-core/pom.xml"> <arg value="clean" /> </mvn> <delete file="${myFirstPrjCloudHome}/console-flex/src/main/flex/Main.swf" /> <mvn pom="${myFirstPrjCloudHome}/console-web/pom.xml"> <arg value="clean" /> </mvn> <mvn pom="${myFirstPrjCloudHome}/datacenter/pom.xml"> <arg value="clean" /> </mvn> <mvn pom="${myFirstPrjCloudHome}/datacenter-pojo/pom.xml"> <arg value="clean" /> </mvn> <mvn pom="${myFirstPrjCloudHome}/ovf/pom.xml"> <arg value="clean" /> </mvn> <mvn pom="${myFirstPrjCloudHome}/ovf-pojo/pom.xml"> <arg value="clean" /> </mvn> <mvn pom="${myFirstPrjCloudHome}/virtual/pom.xml"> <arg value="clean" /> </mvn> <antcall target="clean"> </antcall> </target> <path id="datacenter.src.lib"> <fileset dir="${myFirstPrjCloudHome}/datacenter/src/main/webapp/WEB-INF/lib/"> <include name="*.jar" /> </fileset> </path> <target name="compileMxml"> <mxmlc services="${myFirstPrjCloudHome}/console-web/WebContent/WEB-INF/flex/services-config.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}" > <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" /> <source-path path-element="${FLEX_HOME}/frameworks" /> <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true"> <include name="libs" /> <include name="../bundles/{locale}" /> </compiler.library-path> <compiler.library-path dir="${myFirstPrjCloudHome}/console-flex" append="true"> <include name="libs" /> </compiler.library-path> <compiler.source-path path-element="${myFirstPrjCloudHome}/console-flex/src/main/flex" /> </mxmlc> </target> <target name="wrapper" depends="compileMxml"> <html-wrapper file="Main.html" title="test" application="console-flex" bgcolor="#ffffff" width="100%" height="100%" swf="Main" history="true" version-major="10.0" output="${myFirstPrjCloudDistDir}/flex" /> </target> <macrodef name="java-compile"> <attribute name="project" description="maven project name" /> <sequential> <mkdir dir="${myFirstPrjCloudHome}/@{project}/target/classes"/> <pom id="@{project}.maven.project" file="${myFirstPrjCloudHome}/@{project}/pom.xml" /> <dependencies pathId="@{project}.maven.classpath" filesetid="@{project}.maven.fileset"> <pom refid="@{project}.maven.project" /> </dependencies> <javac srcdir="${myFirstPrjCloudHome}/@{project}/src/main/java" destdir="${myFirstPrjCloudHome}/@{project}/target/classes" debug="${debug}" optimize="${optimize}" classpathref="@{project}.maven.classpath" encoding="UTF-8"> <bootclasspath refid="boot.classpath"> </bootclasspath> <classpath refid="datacenter.src.lib" /> </javac> <copydir dest="${myFirstPrjCloudHome}/@{project}/target/classes" src="${myFirstPrjCloudHome}/@{project}/src/main/java" excludes="**/*.java"> </copydir> <delete dir="${myFirstPrjCloudHome}/@{project}/target/classes" includes="**/CVS" /> <delete dir="${myFirstPrjCloudHome}/@{project}/target/classes" includes="**/*.java" /> </sequential> </macrodef> <macrodef name="flex-compile"> <attribute name="file" description="flex file path" /> <sequential> <mxmlc services="${myFirstPrjCloudHome}/console-web/WebContent/WEB-INF/flex/services-config.xml" 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}" > <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml" /> <source-path path-element="${FLEX_HOME}/frameworks" /> <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true"> <include name="libs" /> <include name="../bundles/{locale}" /> </compiler.library-path> <compiler.library-path dir="${myFirstPrjCloudHome}/console-flex" append="true"> <include name="libs" /> </compiler.library-path> <compiler.source-path path-element="${myFirstPrjCloudHome}/console-flex/src/main/flex" /> </mxmlc> <!--删除缓存文件 <delete file="${myFirstPrjCloudDistDir}/flex/@{file}.swf.cache" /> --> </sequential> </macrodef> </project>
build.bat:
@echo off set ANT_OPTS=-server -Xms512m -Xmx1024m -XX:MaxPermSize=400m F:\myFirstAntPrj-cloud\apache-ant-1.7.1\bin\ant %* pause
注意:其中scp需要特定jar包支持
Scp task是Ant的一个optional task, 所以要运行这个task, 首先需要解决dependencies — jsch(java对ssh2的实现). 注: jsch需要0.1.29以上版本. 可以去Jsch主页下载.
*************************待整理东东*************************
ant可以使用扩展SCP标签实现远程部署及上传,但是如果使用ANT远程删除Linux上的文件夹,应该如何操作呢?
远程上传(需要特定的jar包支持):
<scp file="${ApusicCloudDistDir}/console-web/apusic-cloud.war" todir="${serverUser}:${serverPwd}@${serverIp}:${serverConsoleDir}" trust="true" />
++++++Ant删除文件夹++++++++++++
<delete>
<fileset dir= ". " includes= "**/*.class "/>
</delete>
# <!-- 删除文件夹 -->
# <target name="delete">
# <delete dir="${class.root}" />
# </target>
在执行Delete Task时使用文件过滤的实例
(1)删除单个文件的实例:
<delete file="/lib/ant.jar"/>
这个例子的作用是删除lib目录下的ant.jar文件。
(2)删除目录的实例:
<delete dir="lib"/>
这个例子的作用是删除lib目录,包括这个目录的所有子目录及文件,可以通过include或exclude类型指定删除的部分文件,而不是目录下的所有文件。
(3)删除所有备份文件和空的目录的例子:
<delete includeEmptyDirs="true">
<fileset dir="." includes="**/*.bak"/>
</delete>
参考网址:
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
- jsch-20100817.jar (217.6 KB)
- 下载次数: 3
发表评论
-
性能问题
2013-09-04 20:13 0<SERVICE CLASS=" ... -
ant中使用svn检出代码
2011-05-14 21:33 2912[size=large][size=large][size=l ... -
VNC之代理
2011-03-27 22:48 2677[size=large] 背景:使用VNC客户端去连接DC上 ... -
1号~15号工作日志
2011-01-16 22:23 8401、 Flex的includeInLayout属 ... -
JAVA异常处理
2011-01-11 22:51 653在je上看到一篇有关异常处理的文章,觉得还不错... . ... -
Java配置项
2011-01-11 20:44 838背景:项目中有许多可选参数,这时如果采取硬编码的方式将非 ... -
offLineMap2工作日记之getBoolean
2011-01-06 23:25 7551、如字段不是get**开头的boolean 如: boole ... -
开发常用小工具集
2011-01-06 22:26 1965毕业也有半年了,我有幸能加入一家知名IT公司并从事时下最 ... -
Eclipse中阅读开源项目代码
2010-12-25 22:57 2665[size=large] 背景:由于最近较为系统地学习了 ... -
Eclipse调试深入
2010-12-25 18:59 1269背景:我个人的调 ... -
Java打包总结
2010-12-19 22:35 1362背景:最近下载了一 ... -
Ant与批处理(win环境)学习笔记(2)
2010-12-19 22:01 1168在《Ant与批处理(win环境)学习笔记》中学习了Ant的一些 ... -
Ant与批处理(win环境)学习笔记
2010-12-19 10:27 1404背景:最近个人附 ... -
JDK工具学习
2010-12-18 22:14 991[size=large] 起因:在 ... -
Eclipse插件安装总结
2010-12-18 12:29 1159大学时一直使用的 ... -
使用Ant和Maven构建时出现OOM异常
2010-12-14 23:14 1722今日更新测试环境时报OOM错误(工程中使用了Ant和Ma ... -
JAVA技术见识集
2010-12-12 09:34 823[size=large] 将网上看到的一些适用于指定场景的 ... -
Eclipse异常集
2010-12-08 19:52 22361、 Eclipse异常说An internal Error ... -
将批处理文件注册成服务
2010-11-15 19:49 3496前两天完成了将java程序注册成win服务,如今本人有一 ... -
将java程序做成windows系统服务
2010-11-11 19:42 2267近日一直在忙于Rhel( ...
相关推荐
利用ant进行批处理打包,一键打包,因项目不同,我的批处理和大家的肯定不同,大家可以借鉴、参考。
Ant和批处理脚本.rar Ant和批处理脚本.rar
unity3d android 使用ant打包批处理。在windows下面配置好环境,可以自动生成apk.可以查看里面的脚本,有问题可以进http://www.webgou.info留言
NULL 博文链接:https://jsjxqjy.iteye.com/blog/415572
ANT 是一个Java TM 项目生成工具 本批处理程序模仿其功能 可以生成Java 工程 可编译Java程序 可运行Tomcat 本程序小巧,移植性好,易扩展 大家可以一起修改,改善其功能
ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料
ant配置后提示不是内部命令也...3、验证ant环境配置。开始-->运行-->输入cmd,打开dos命令窗口。最后,在命令行下输入:ant -version,如果能显示版本号,就代表ant环境配置成功。ant -help可以查看帮助信息。
ant ant下载 ant配置ant ant下载 ant配置ant ant下载 ant配置
ant环境配置,ant文件编写,ant使用技巧,ant开发实例
ant ant ant antant ant ant antant ant ant ant
3. Ant Design Vue学习分享 3.1 介绍 3.2 环境搭建 3.3 官方文档如何看 3.4 性能测评 3.5 如何嵌套其它非Vue页面 3.6 如何自定义封装标签例子 3.7 前后端分的离数据怎么交互 4. VUE2.0学习路线分享
Ant与从基于命令的那些扩展开来的那些工具不同,Ant是由java类扩展的。不用编写shell命令,而是配置基于XML的文件,形成多个任务的目标配置树。每一个任务都是通过一个实现了一个规定接口的java类来运行的。 ant...
ant-1.9.6.jar的构建工具,需要使用的朋友自行下载 具体的环境变量配置以及使用方法,可以去我博客中找,在此不进行详述了
apache-ant-1.6.5-bin 具体详细信息察看readme.txt
ANT学习资料,我在学习ANT查找的一些资料,进行汇总
学习ant的好资料。系统讲解了ant的功能体系。
使用ant对cvs不同版本进行比较时,对其环境的支持!
ant学习测试工程源码,基于spring与hiberante与junit的java工程 用于ant的项目构建
Ant权威指南 这个大家都知道,方便又需要的朋友