使用ant部署web项目

使用ant脚本可以实现web项目的部署,从而减少不必要的重复性工作.

步骤1. 新建一个web项目(目录结构如下图),first包下创建一个java类

package first;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloAnt extends HttpServlet
{
    public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<span style='color:red;'>"+"Hello servlet!"+"</span>");
        out.close();
    }
}

步骤2. 编辑web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 
   <servlet>
      <servlet-name>helloServlet</servlet-name>
      <servlet-class>first.HelloAnt</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern>/sayHello</url-pattern>
    </servlet-mapping>
</web-app>

步骤3. 项目根目录下,创建build.xml如下

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

<project name="anttest" default="compile" basedir=".">
    <property name="webapp.name" value="antBuidWeb"></property>
    <property name="catalina.home" value="D:/apache-tomcat-6.0.33"/>     
    <property name="src.dir"    value="${basedir}/src"/>   
    <property name="lib.dir"    value="${basedir}/WebRoot/WEB-INF/lib"/>  
    <property name="class.dir"    value="${basedir}/WebRoot/WEB-INF/classes"/>   
    <property name="webapps.dir" value="${catalina.home}/webapps"/>
    <property name="war.dir"    value="${basedir}/war"/> 

     <!-- **********************************set classpath********************************** -->   
         <path id="compile.classpath">   
             <fileset dir="${catalina.home}/lib">   
               <include name="*.jar"/>   
             </fileset>   
             <fileset dir="${lib.dir}">   
               <include name="*.jar"/>   
             </fileset>   
         </path> 
    
      <!-- **********************************init********************************** -->   
         <target name="init">   
             <mkdir dir="${war.dir}"/>   
         </target>
    
    <!-- **********************************clean class********************************** -->   
         <target name="clean" description="Delete old build and dist directories" depends="init">   
             <delete dir="${class.dir}" includes="**/*.class"/>    
         </target>   

     <!-- **********************************compile java********************************** -->   
         <target name="compile" description="Compile Java sources" depends="clean">   
             <mkdir dir="${class.dir}"/>   
             <javac srcdir="${src.dir}" 
                   destdir="${class.dir}">   
                 <classpath refid="compile.classpath"/>   
             </javac>   
            <!--This copy opera is not required
             <copy todir="${class.dir}">   
               <fileset dir="${src.dir}" excludes="**/*.java"/>   
             </copy> 
             --> 
             
         </target>   
    
 <!-- **********************************deploy  webapp********************************** -->   
     <target name="deploy" description="Install application to servlet container" depends="compile">   
        <delete dir="${webapps.dir}/${webapp.name}"/>   
     
        <war destfile="${war.dir}/${webapp.name}.war"  webxml="${basedir}/WebRoot/WEB-INF/web.xml">    
            <fileset dir="webRoot" ></fileset>
             <lib dir="${lib.dir}"/>    
             <classes dir="${class.dir}"/>            
         </war>  
         
         <copy file="${war.dir}/${webapp.name}.war" todir="${webapps.dir}">
         
         </copy>
         
     </target>     
    
    <!-- **********************************start web server********************************** -->   
         <target name="startserver" description="Start web server" >   
             <exec dir="${catalina.home}/bin" executable="cmd.exe">   
                 <env key="CATALINA_HOME" path="${catalina.home}"/>   
                 <arg value="/c startup.bat"/>   
             </exec>   
         </target>   
    
     <!-- **********************************stop web server********************************** -->   
            
         <target name="stopserver" description="Stop web server" >   
             <exec dir="${catalina.home}/bin" executable="cmd.exe">   
                 <env key="CATALINA_HOME" path="${catalina.home}"/>   
                 <arg value="/c shutdown.bat"/>   
             </exec>   
         </target>   
    
      <!-- **********************************start work********************************** -->   
         <target name="start" description="Clean build and dist directories, then compile">   
             <ant target="deploy"/>   
             <ant target="startserver"/>   
         </target>   
    
      <!-- **********************************reload web server********************************** -->   
         <target name="reload" description="reload web server">   
             <ant target="stopserver"></ant>   
             <sleep seconds="2"></sleep>   
             <ant target="start"></ant>   
         </target>   
            

</project>

至此,build.xml已经完成了,可以 执行你需要的任务了. 项目目录结构图如下:

antweb

原文地址:https://www.cnblogs.com/david-rui/p/3428450.html