标签:ant java war
前言:如题所示,有时我们可能经常需要把JavaWeb项目进行编译,然后打包成war包并发布到Tomacat中进行测试。如果每次都人工进行操作的话,无疑是很麻烦的。这时我们可以通过编写一个自动化的Ant脚本,每次需要发布项目时只需要点击一下就可以完成了,非常方便
测试项目的项目结构如下:
Ant脚本build_war.xml:
<?xml version="1.0" encoding="UTF-8"?> <project name="antwar" default="publish" basedir="."> <!-- 打包生成的war名字 --> <property name="war.name" value="Internationalisation" /> <!-- java源文件路径 --> <property name="src.dir" value="${basedir}/src" /> <!-- webapp路径 --> <property name="webapp.dir" value="${basedir}/WebContent" /> <!-- jar包路径 --> <property name="lib.dir" value="${webapp.dir}/WEB-INF/lib" /> <!-- 编译源文件路径 --> <property name="build.bin" value="${basedir}/AntBuild/bin" /> <!-- 准备webapp文件路径 --> <property name="buildwar.dest" value="${basedir}/AntBuild/warsrc" /> <!-- 打包war文件路径 --> <property name="war.dest" value="${basedir}/AntBuild/war" /> <!-- tomcat路径 --> <property name="tomcat.home" value="D:\\apache-tomcat-7.0.68" /> <!-- classpath --> <path id="classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> <fileset dir="${tomcat.home}/lib"> <include name="**/*.jar" /> </fileset> </path> <!-- 初始化 --> <target name="init"> <mkdir dir="${build.bin}" /> <mkdir dir="${buildwar.dest}" /> <mkdir dir="${war.dest}" /> <!-- 复制静态文件 --> <copy todir="${buildwar.dest}" overwrite="true"> <fileset dir="${webapp.dir}"> <exclude name="/WEB-INF/classes/**" /> </fileset> </copy> </target> <!-- 编译源文件 --> <target name="compile" depends="init"> <echo message="Build: " /> <javac srcdir="${src.dir}" destdir="${build.bin}" encoding="utf-8" includeantruntime=""> <classpath refid="classpath" /> </javac> <!-- 复制编译后的文件 --> <copy todir="${buildwar.dest}/WEB-INF/classes" overwrite="true"> <fileset dir="${build.bin}"> <include name="**/*.class" /> </fileset> </copy> </target> <!-- 复制项目中的其他的一些资源文件 --> <target name="copyResource" depends="compile"> <echo message="Copy resources: " /> <copy todir="${buildwar.dest}/WEB-INF/classes" overwrite="true"> <fileset dir="${basedir}/resources"> <include name="**/*.*" /> </fileset> </copy> </target> <!-- 打war包 --> <target name="build.war" depends="copyResource"> <echo message="Build war: " /> <war warfile="${war.dest}/${war.name}.war" webxml="${buildwar.dest}/WEB-INF/web.xml"> <fileset dir="${buildwar.dest}" /> </war> </target> <!-- 发布到tomcat --> <target name="publish" depends="build.war"> <!-- 删除tomcat已发布的项目文件 --> <delete dir="${tomcat.home}/webapps/${war.name}" /> <delete file="${tomcat.home}/webapps/${war.name}.war" /> <!-- 复制war文件到${tomcat.home}/webapps --> <copy todir="${tomcat.home}/webapps" overwrite="true"> <fileset dir="${war.dest}"> <filename name="${war.name}.war" /> </fileset> </copy> <!-- 清除临时文件 --> <delete dir="${build.bin}" /> <delete dir="${buildwar.dest}" /> <delete dir="${war.dest}" /> </target> </project>
注:
代码中有详细注释,因此就不多做解释了,如果对Ant的一些基础知识不太熟悉的话可以参考下我写的这篇文章:http://www.zifangsky.cn/444.html
关于在eclipse中如何执行ant脚本,可以参考下我的这篇文章:http://www.zifangsky.cn/431.html ,这里就不多说了
本文出自 “zifangsky的个人博客” 博客,请务必保留此出处http://983836259.blog.51cto.com/7311475/1790138
Apache Ant学习总结(二):使用Ant自动编译JavaWeb项目并打成war包发布到Tomcat中
标签:ant java war
原文地址:http://983836259.blog.51cto.com/7311475/1790138