zoukankan      html  css  js  c++  java
  • 使用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

  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/david-rui/p/3428450.html
Copyright © 2011-2022 走看看