转载

Ant部署应用程序

   

在前面的章节中,我们已经学会了如何打包应用程序并将其部署到一个文件夹中。在这个例子中,我们打算把它更进一步。

我们要部署Web应用程序直接到应用程序的服务器的部署文件夹,然后我们将添加一些Ant目标来启动和停止服务。让我们继续的Hello World传真的Web应用程序。这是一个延续前一章,新元件在突出红色

build.properties

 # Ant properties for building the springapp  appserver.home=c://install//apache-tomcat-7.0.19 # for Tomcat 5 use $appserver.home}/server/lib # for Tomcat 6 use $appserver.home}/lib appserver.lib=${appserver.home}/lib  deploy.path=${appserver.home}/webapps  tomcat.manager.url=http://www.yiibai.com:8080/manager tomcat.manager.username=yiibai tomcat.manager.password=secret

build.xml

 <?xml version="1.0"?>  <project name="fax" basedir="." default="usage">     <property file="build.properties"/>     <property name="src.dir" value="src"/>     <property name="web.dir" value="war"/>     <property name="javadoc.dir" value="doc"/>     <property name="build.dir" value="${web.dir}/WEB-INF/classes"/>     <property name="name" value="fax"/>      <path id="master-classpath">         <fileset dir="${web.dir}/WEB-INF/lib">             <include name="*.jar"/>         </fileset>         <pathelement path="${build.dir}"/>     </path>          <target name="javadoc">       <javadoc packagenames="faxapp.*" sourcepath="${src.dir}"        destdir="doc" version="true" windowtitle="Fax Application">         <doctitle><![CDATA[<h1>= Fax Application            =</h1>]]></doctitle>         <bottom><![CDATA[Copyright © 2011. All            Rights Reserved.]]></bottom>         <group title="util packages" packages="faxapp.util.*"/>         <group title="web packages" packages="faxapp.web.*"/>         <group title="data packages"            packages="faxapp.entity.*:faxapp.dao.*"/>       </javadoc>     </target>      <target name="usage">         <echo message=""/>         <echo message="${name} build file"/>         <echo message="-----------------------------------"/>         <echo message=""/>         <echo message="Available targets are:"/>         <echo message=""/>         <echo message="deploy    --> Deploy application            as directory"/>         <echo message="deploywar --> Deploy application            as a WAR file"/>         <echo message=""/>     </target>      <target name="build" description="Compile main        source tree java files">         <mkdir dir="${build.dir}"/>         <javac destdir="${build.dir}" source="1.5"            target="1.5" debug="true"           deprecation="false" optimize="false" failonerror="true">             <src path="${src.dir}"/>             <classpath refid="master-classpath"/>         </javac>     </target>      <target name="deploy" depends="build"        description="Deploy application">         <copy todir="${deploy.path}/${name}"            preservelastmodified="true">             <fileset dir="${web.dir}">                 <include name="**/*.*"/>             </fileset>         </copy>     </target>      <target name="deploywar" depends="build"        description="Deploy application as a WAR file">         <war destfile="${name}.war"              webxml="${web.dir}/WEB-INF/web.xml">             <fileset dir="${web.dir}">                 <include name="**/*.*"/>             </fileset>         </war>         <copy todir="${deploy.path}" preservelastmodified="true">             <fileset dir=".">                 <include name="*.war"/>             </fileset>         </copy>     </target>           <target name="clean" description="Clean output directories">         <delete>             <fileset dir="${build.dir}">                 <include name="**/*.class"/>             </fileset>         </delete>     </target> 
     <!-- ============================================================ -->     <!-- Tomcat tasks -->     <!-- ============================================================ -->      <path id="catalina-ant-classpath">         <!-- We need the Catalina jars for Tomcat -->         <!--  * for other app servers - check the docs -->         <fileset dir="${appserver.lib}">             <include name="catalina-ant.jar"/>         </fileset>     </path>      <taskdef name="install"          classname="org.apache.catalina.ant.InstallTask">         <classpath refid="catalina-ant-classpath"/>     </taskdef>     <taskdef name="reload"          classname="org.apache.catalina.ant.ReloadTask">         <classpath refid="catalina-ant-classpath"/>     </taskdef>     <taskdef name="list"          classname="org.apache.catalina.ant.ListTask">         <classpath refid="catalina-ant-classpath"/>     </taskdef>     <taskdef name="start"          classname="org.apache.catalina.ant.StartTask">         <classpath refid="catalina-ant-classpath"/>     </taskdef>     <taskdef name="stop"           classname="org.apache.catalina.ant.StopTask">         <classpath refid="catalina-ant-classpath"/>     </taskdef>      <target name="reload" description="Reload application in Tomcat">         <reload url="${tomcat.manager.url}"                  username="${tomcat.manager.username}"                  password="${tomcat.manager.password}"                  path="/${name}"/>     </target> </project>

在本练习中,我们使用Tomcat作为我们的应用服务器。首先,在构建属性文件中,我们定义了一些附加属性。

  • appserver.home应用指向安装路径到Tomcat应用服务器。

  • appserver.lib指向Tomcat的安装文件夹中的库文件。

  • deploy.path变量现在指向Tomcat中的web应用文件夹。

在Tomcat中的应用程序可以停止和startedusing Tomcat管理应用程序。也是在build.properties文件中指定的URL管理器应用程序,使用用户名和密码。接下来我们声明一个新的CLASSPATH中包含catalina-ant.jar文件。这个jar文件是必需通过Apache Ant来执行Tomcat 任务。

catalina-ant.jar 文件提供了以下任务:

Properties 描述
InstallTask Installs a web application. Class Name: org.apache.catalina.ant.InstallTask
ReloadTask Reload a web application. Class Name: org.apache.catalina.ant.ReloadTask
ListTask Lists all web applications. Class Name: org.apache.catalina.ant.ListTask
StartTask Starts a web application. Class Name: org.apache.catalina.ant.StartTask
StopTask Stops a web application. Class Name: org.apache.catalina.ant.StopTask
ReloadTask Reloads a web application without stopping. Class Name: org.apache.catalina.ant.ReloadTask

重装任务需要以下附加参数。
- 1)URL到管理器应用程序
2)用户名重新启动Web应用程序
3)密码重新启动Web应用程序重新启动Web应用程序
4)名称

让我们发出的deploy-war命令的web应用程序复制到Tomcat的webapps文件夹中,然后让我们重新加载该传真的Web应用程序。下面的结果是运行Ant文件的结果: 

 C:/>ant deploy-war Buildfile: C:/build.xml  BUILD SUCCESSFUL Total time: 6.3 seconds  C:/>ant reload Buildfile: C:/build.xml  BUILD SUCCESSFUL Total time: 3.1 seconds

一旦上述任务运行时,Web应用程序部署和Web应用程序重新加载。

   
正文到此结束
Loading...