海上月明

editer by sun
posts - 162, comments - 51, trackbacks - 0, articles - 8
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

使用ant发布struts应用

Posted on 2007-04-01 01:24 pts 阅读(577) 评论(0)  编辑  收藏 所属分类: Java
使用ant发布struts应用,确切的说,是为struts2的应用准备的

#build.xml
<project default="init" name="Struts2_Test">
   
    <property file="build.properties" />
   
    <property name="srcDir" location="src"/>#src存放java文件,其跟目录下存放struts.xml
    <property name="pageDir" location="pages"/>#pages存放相关页面文件
    <property name="buildDir" location="build"/>#duild过程生成的文件
    <property name="distDir" location="dist"/>#目标文件,存放war文件
    <property name="libPath" location="WEB-INF/lib"/>#制定lib文件存放的地方
   
    #初始化classpath,以便于javac tarsk使用
    <path id="project.class.path">
        <fileset dir="${libPath}">
                <include name="*.jar"/>
        </fileset>
        <pathelement location="${buildDir}/classes"/>
        <pathelement path="${java.class.path}"/>
    </path>
   
    #初始化,建立目录
    <target name="init">
        <mkdir dir="${buildDir}/classes"/>
        <mkdir dir="${distDir}"/>
    </target>
   
    #编译java文件
    <target name="complier" depends="init">
        <javac destdir="${buildDir}/classes">
                <src path="${srcDir}"/>
                <classpath refid="project.class.path"/>
        </javac>
    </target>
   
    #打包成war文件,文件名默认是project名字
    <target name="package" depends="complier">
        #先copy过来到classes目录,就是执行war时会打包进去########很重要
        <copy file="${srcDir}/struts.xml" todir="${buildDir}/classes"/>
        <war destfile="${distDir}/${ant.project.name}.war" webxml="WEB-INF/web.xml">
                <fileset dir="${pageDir}"/>
                <lib dir="WEB-INF/lib"/>
                <classes dir="${buildDir}/classes"/>
        </war>
    </target>
   
    #发布到tomcat的webapps目录
    <target name="deploy" depends="package">
        <copy file="${distDir}/${ant.project.name}.war" todir="${tomcat.home}/webapps"/>
    </target>
   
    #删除build目录
    <target name="clean" depends="deploy">
        <delete dir="${buildDir}"/>
    </target>
   
    #ant reload将会对此应用重启
    <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
        <classpath>
            <path location="${libPath}/catalina-ant.jar" />
        </classpath>
    </taskdef>

    #开启应用
    <taskdef name="start" classname="org.apache.catalina.ant.StartTask">
        <classpath>
            <path location="${libPath}/catalina-ant.jar" />
        </classpath>
    </taskdef>
   
    #停止应用
    <taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
        <classpath>
            <path location="${libPath}/catalina-ant.jar" />
        </classpath>
    </taskdef>

     <target name="reload" description="Reload application in Tomcat">
             <reload url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${webapp.name}" />
     </target>
   
     <target name="start" description="Start Tomcat application">
             <start url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${webapp.name}" />
     </target>
   
     <target name="stop" description="Stop Tomcat application">
             <stop url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${webapp.name}" />
     </target>   
   
</project>

------------------------------------
设计到build的一些属性设置
#build.properties
webapp.name=Struts2_Test
tomcat.home=F:/javatools/tomcat
tomcat.manager.url=http://localhost/manager
tomcat.manager.username=manager
tomcat.manager.password=1234

--------------------------------------
文件结构图:
ant_struts2.GIF

powered by performancing firefox


附:给编程狂热者的ant task笔记   作者:江南白衣

只有注册用户登录后才能发表评论。


网站导航: