标签: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