使用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
--------------------------------------
文件結構圖:
powered by performancing firefox
附:
給編程狂熱者的ant task筆記 作者:
江南白衣