Ant简单示例

最近部门在做各种技术的预研,学习了不少知识,记录下省得忘了。。。

webproject

<?xml version="1.0" encoding="UTF-8"?>

<project name="project" basedir="." default="run">
<!-- 环境参数 -->
<property name="build.home" value="build" /><!-- 正式包编译后目录 -->
<property name="web.root" value="WebRoot" /><!-- 资源文件目录 -->
<property name="src.home" value="${basedir}/src" /><!-- 类源文件目录 -->
<property name="build.javadocs" value="docs" /><!-- docAPI目录 -->
<!-- 项目名 -->
<property name="projectname" value="project" />
<property name="version" value="1.0" /> <!-- 版本号 -->
<property name="year" value="2009" /> <!-- 创建时间 -->
<!-- 本地上传路径 -->
<property name="localpath" value="c:/test/" />
<!-- 远端服务器IP -->
<property name="serverip" value="192.168.151.242" />
<property name="servername" value="root" /> <!-- 远端服务器用户 -->
<property name="serverpwd" value="redroot" /><!-- 远端服务器密码 -->
<property name="serverpath" value="/home/test/" /><!-- 远端服务器上传路径 -->

<!-- 正式发布包欢迎消息 -->
<echo message="----------- ${projectname} ${version} [${year}] ------------" />
<target name="echo">
<echo message="${projectname} Build file" />
<echo message="-------------------------------------------------------------" />
<echo message="" />
<echo message=" available targets are:" />
<echo message="" />
<echo message=" build --> compiles the source code" />
<echo message=" javadoc --> generates the API documentation" />
<echo message=" clean --> cleans up the directory" />
<echo message=" 业务系统正式发布包"/>
<echo message="" />
<echo message=" Please rename build.properties.default to build.properties" />
<echo message=" and edit build.properties to specify JSDK 2.3 classpath." />
<echo message="" />
<echo message=" See the comments inside the build.xml file for more details." />
<echo message="-------------------------------------------------------------" />
<echo message="" />
<echo message="" />
</target>
<!-- 测试发布包欢迎消息 -->
<target name="testecho">
<echo message="${projectname} Build file" />
<echo message="-------------------------------------------------------------" />
<echo message="" />
<echo message=" available targets are:" />
<echo message="" />
<echo message=" build --> compiles the source code" />
<echo message=" javadoc --> generates the API documentation" />
<echo message=" clean --> cleans up the directory" />
<echo message=" 业务系统测试发布包"/>
<echo message="" />
<echo message=" Please rename build.properties.default to build.properties" />
<echo message=" and edit build.properties to specify JSDK 2.3 classpath." />
<echo message="" />
<echo message=" See the comments inside the build.xml file for more details." />
<echo message="-------------------------------------------------------------" />
<echo message="" />
<echo message="" />
</target>
<!-- 依赖包 -->
<path id="web.lib">
<fileset dir="${web.root}/WEB-INF/lib">
<include name="*.jar" />
</fileset>
</path>
<!-- 生成API -->
<target name="javadoc">
<mkdir dir="${build.javadocs}" />
<javadoc packagenames="" sourcepath="${src.home}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${projectname} API" doctitle="${projectname}">
<classpath refid="web.lib" />
</javadoc>
<echo>java doc 制作完毕</echo>
</target>

<!-- 清除目录,上次编译文件,创建新目录结构-->
<target name="clean">
<echo message="初始化目录" />
<delete dir="${build.home}" />
<mkdir dir="${build.home}" />
</target>

<!--编译-->
<target name="build">
<echo message="编译目录${src.home}" />
<javac srcdir="${src.home}" destdir="${web.root}/WEB-INF/classes" debug="true" source="1.5" debuglevel="source,lines,vars" encoding="utf-8">
<classpath refid="web.lib" />
</javac>
<copy todir="${web.root}/WEB-INF/classes/">
<fileset dir="${src.home}" includes="*.property" />
<fileset dir="${src.home}" includes="*.xml" />
</copy>
</target>
<!-- 打正式发布war包 -->
<target name="createPackage">
<jar basedir="${build.home}" destfile="${build.home}/${projectname}.war">
<fileset dir="${web.root}" includes="**" />
</jar>
</target>
<!-- 发布目录到本地服务器 -->
<target name="upMenuTolocal">
<input message ="请确定是否copy${projectname}目录结构到${localpath}"
validargs ="y,n" addproperty ="do.coverage" defaultvalue ="n"/>
<condition property ="do.abort">
<equals arg1 ="n" arg2 ="${do.coverage}"/>
</condition>
<fail if ="do.abort">退出</fail>
<copy todir="${localpath}">
<fileset dir="${web.root}" includes="**" />
</copy>
<echo message="copy完毕" />
</target>
<!-- 发布war到本地服务器 -->
<target name="upWarTolocal" depends="createPackage">
<input message ="请确定是否copy${projectname}正式包到${localpath}"
validargs ="y,n" addproperty ="do.coverage" defaultvalue ="n"/>
<condition property ="do.abort">
<equals arg1 ="n" arg2 ="${do.coverage}"/>
</condition>
<fail if ="do.abort">退出</fail>
<copy todir="${localpath}">
<fileset dir="${build.home}" includes="${projectname}.war" />
</copy>
<echo message="copy完毕" />
</target>
<!-- 发布目录到远程服务器 -->
<target name="upMenuToServer">
<input message ="请确定是否上传${projectname}目录结构到${serverip}${serverpath}"
validargs ="y,n" addproperty ="do.coverage" defaultvalue ="n"/>
<condition property ="do.abort">
<equals arg1 ="n" arg2 ="${do.coverage}"/>
</condition>
<fail if ="do.abort">退出</fail>
<sshexec host="${serverip}" username="${servername}" password="${serverpwd}"
trust="true" command="cd ${serverpath};ls" verbose ="true"/>
<scp todir="${servername}@${serverip}:${serverpath}" password="${serverpwd}" trust="true" verbose ="true">
<fileset dir="${web.root}">
<include name="**" />
</fileset>
</scp>
<echo message="上传完毕" />
</target>
<!-- 发布war到远程服务器 -->
<target name="upWarToServer" depends="createPackage">
<input message ="请确定是否上传${projectname}正式包到${serverip}${serverpath}"
validargs ="y,n" addproperty ="do.coverage" defaultvalue ="n"/>
<condition property ="do.abort">
<equals arg1 ="n" arg2 ="${do.coverage}"/>
</condition>
<fail if ="do.abort">退出</fail>
<scp file="${build.home}/${projectname}.war" todir="${servername}@${serverip}:${serverpath}" password="${serverpwd}" trust="true" verbose ="true"/>
<sshexec host="${serverip}" username="${servername}" password="${serverpwd}"
trust="true" command="cd ${serverpath};ls"/>
<echo message="上传完毕" />
</target>
<!-- 正常编译打包 -->
<target name="run" depends="clean,echo,build,createPackage,javadoc"/>
<!-- 发布本地测试目录 -->
<target name="menulocal" depends="clean,testecho,build,upMenuTolocal" />
<!-- 发布本地测试包 -->
<target name="warlocal" depends="clean,echo,build,upWarTolocal,javadoc" />
<!-- 发布服务器测试目录 -->
<target name="menuserver" depends="clean,testecho,build,upMenuToServer" />
<!-- 发布服务器测试包 -->
<target name="warserver" depends="clean,echo,build,upWarToServer,javadoc" />
</project>




jarproject

<?xml version="1.0" encoding="UTF-8"?>
<project name="project" basedir="." default="run">
<!-- 环境参数 -->
<property name="build.home" value="build" /><!-- 编译后目录 -->
<property name="src.home" value="${basedir}/src" /><!-- 类源文件目录 -->
<property name="class.home" value="${basedir}/bin" /><!-- 类文件目录 -->
<property name="lib.home" value="lib" /><!-- jar文件目录 -->
<property name="build.javadocs" value="docs" /><!-- docAPI目录 -->
<!-- 项目名 -->
<property name="projectname" value="project" />
<property name="version" value="1.0" /> <!-- 版本号 -->
<property name="year" value="2009" /> <!-- 创建时间 -->
<property name="mainclass" value="com.zzvcom.test.Test" /> <!-- 主函数 -->



<!-- 正式发布包欢迎消息 -->
<echo message="----------- ${projectname} ${version} [${year}] ------------" />
<target name="echo">
<echo message="${projectname} Build file" />
<echo message="-------------------------------------------------------------" />
<echo message="" />
<echo message=" available targets are:" />
<echo message="" />
<echo message=" build --> compiles the source code" />
<echo message=" javadoc --> generates the API documentation" />
<echo message=" clean --> cleans up the directory" />
<echo message=" 业务系统正式发布包"/>
<echo message="" />
<echo message=" Please rename build.properties.default to build.properties" />
<echo message=" and edit build.properties to specify JSDK 2.3 classpath." />
<echo message="" />
<echo message=" See the comments inside the build.xml file for more details." />
<echo message="-------------------------------------------------------------" />
<echo message="" />
<echo message="" />
</target>

<!-- 依赖包 -->
<path id="web.lib">
<fileset dir="${lib.home}">
<include name="*.jar" />
</fileset>
</path>
<!-- 生成API -->
<target name="javadoc">
<mkdir dir="${build.javadocs}" />
<javadoc packagenames="" sourcepath="${src.home}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${projectname} API" doctitle="${projectname}">
<classpath refid="web.lib" />
</javadoc>
<echo>java doc 制作完毕</echo>
</target>

<!-- 清除目录,上次编译文件,创建新目录结构-->
<target name="clean">
<echo message="初始化目录" />
<delete dir="${build.home}" />
<delete dir="${class.home}" />
<mkdir dir="${build.home}" />
<mkdir dir="${class.home}" />
<echo>初始化完毕</echo>
</target>

<!--编译-->
<target name="build">
<echo message="编译目录${src.home}" />
<javac srcdir="${src.home}" destdir="${class.home}" debug="true" source="1.5" debuglevel="source,lines,vars" encoding="utf-8">
<classpath refid="web.lib" />
</javac>
<copy todir="${class.home}">
<fileset dir="${src.home}" includes="*.property" />
<fileset dir="${src.home}" includes="*.xml" />
</copy>
<echo>编译完毕</echo>
</target>
<!-- 打正式发布jar包 -->
<target name="createPackage">
<jar basedir="${build.home}" destfile="${build.home}/${projectname}.jar">
<fileset dir="${class.home}" includes="**" />
<manifest>
<attribute name="Main-Class" value="${mainclass}" />
</manifest>
</jar>
<echo>打包完毕</echo>
</target>

<!-- 发布 -->
<target name="run" depends="clean,echo,build,createPackage,javadoc" />

</project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值