引用地址:http://www.easydone.cn/014/200604110005145285.htm
配合ant開發web項目
應用相關說明:
1、ant版本:apache-ant-1.6.1
2、eclipse版本:eclipse-SDK-3.0.1-win32
3、j2sdk1.4.2_08
4、jakarta-tomcat-5.0.19
5、mysql
目錄結構如下:

ant具體配置如下
1、"Easydone"project"demo"bin目錄下新建build.xml
內容如下:
<?xml version="1.0" encoding="GB2312" ?>
<project name="Demo-Home" basedir="." default="usage">
<property name="app.name" ="demo"/>
<property name="app.dir" location="../WebRoot"/>
<property name="webserver.home" location="../../../platform/jakarta-tomcat-5.0.19"/>
<property name="webserver.deploy" location="${webserver.home}/webapps/"/>
<property name="src.dir" location="../src"/>
<property name="build.dir" location="${app.dir}/WEB-INF/classes"/>
<property name="lib.dir" location="${app.dir}/WEB-INF/lib"/>
<property name="dist.dir" location="../dist"/>
<property name="properties.dir" location="${src.dir}/com/easydone/struts/ApplicationResources.properties"/>
<property name="properties_zh.dir" location="${build.dir}/com/easydone/struts/ApplicationResources_zh.properties"/>
<property name="doc.dir" ="../api"/>
<property name="packages" ="com.easydone.*"/>
<echo>+--------------------------------------------------+</echo>
<echo>| |</echo>
<echo>| R U N N I N G A N T REPOSITORY |</echo>
<echo>| |</echo>
<echo>+--------------------------------------------------+</echo>
<!---Help Information-->
<target name="usage" >
<echo message=""/>
<echo message="-------------------------------------------------------------"/>
<echo message="操作說明:"/>
<echo message="首先將您編寫的java文件拷貝至${src.dir}目錄下,按先后順序執行以下命令既可。"/>
<echo message="第一步:compile 命令編譯*.java"/>
<echo message="第二步:deploy 命令生成${app.name}.jar文件"/>
<echo message="第三步:doc 命令生成詳細javadoc文檔"/>
<echo message="每一步操作都能看到 BUILD SUCCESSFUL提示后,表示您操作成功!"/>
<echo message="-------------------------------------------------------------"/>
<echo message=""/>
</target>
<!-- =================================================================== -->
<!-- 設置應用環境變量 -->
<!-- =================================================================== -->
<path id="compile.classpath">
<pathelement path ="${build.dir}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- =================================================================== -->
<!-- 格式化中文資源包,解決國際化中文問題 -->
<!-- =================================================================== -->
<target name="checkToZh">
<uptodate property="toZh.notRequired"
srcfile="${properties.dir}"
targetfile="${properties_zh.dir}"/>
</target>
<target name="toZh" depends="checkToZh" unless="toZh.notRequired">
<delete file="${properties_zh.dir}"/>
<!-- native2ascii struts.properties -->
<exec executable="native2ascii">
<arg line=" ${properties.dir} ${properties_zh.dir}"/>
</exec>
<echo message="toZh performed!"/>
</target>
<!-- =================================================================== -->
<!-- 初始化創建相關應用目錄 -->
<!-- =================================================================== -->
<target name="prepare" deion="create build,dist files">
<mkdir dir="${build.dir}"/>
<mkdir dir="${dist.dir}"/>
</target>
<!-- =================================================================== -->
<!-- 初始化應用程序,刪除相關目錄 -->
<!-- =================================================================== -->
<target name="clean" deion="Delete build files">
<delete dir="${build.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<!-- =================================================================== -->
<!-- compile 命令,執行javac編譯命令 -->
<!-- =================================================================== -->
<target name="compile" depends="prepare">
<javac srcdir="${src.dir}" destdir="${build.dir}" debug="on">
<classpath refid="compile.classpath"/>
</javac>
</target>
<!-- =================================================================== -->
<!-- update命令,編譯及處理國際化中文資源文件 -->
<!-- =================================================================== -->
<target name="update" depends="compile,toZh">
<!--copy classes-->
<copy todir="${webserver.deploy}/${app.name}/WEB-INF/classes" includeEmptyDirs="no">
<fileset dir="${build.dir}"/>
</copy>
<!--copy pages-->
<copy todir="${webserver.deploy}/${app.name}" includeEmptyDirs="no">
<fileset dir="${app.dir}"/>
</copy>
<!-- copy libs-->
<copy todir="${webserver.deploy}/${app.name}/WEB-INF/lib" includeEmptyDirs="no">
<fileset dir="${lib.dir}"/>
</copy>
</target>
<!-- =================================================================== -->
<!-- 部署應用程序,依賴于 compile命令clean,prepare,compile,dist -->
<!-- =================================================================== -->
<target name="deploy" depends="clean,prepare,compile,toZh,dist">
<delete dir="${webserver.deploy}/${app.name}.war"/>
<delete dir="${webserver.deploy}/${app.name}"/>
<copy todir="${webserver.deploy}" includeEmptyDirs="no">
<fileset dir="${dist.dir}"/>
</copy>
</target>
<!-- =================================================================== -->
<!-- 部署應用程序,將其打為mshome.war包,依賴于 compile命令 -->
<!-- =================================================================== -->
<target name="dist" depends="compile">
<echo>building war...</echo>
<war warfile="${dist.dir}/${app.name}.war"
webxml="${app.dir}/WEB-INF/web.xml">
<fileset dir="${app.dir}"/>
<classes dir="${build.dir}"/>
<classes dir="${lib.dir}">
<include name="*.propertries"/>
</classes>
<lib dir="${lib.dir}">
<include name="*.jar"/>
</lib>
</war>
</target>
<!-- =================================================================== -->
<!-- 生成說明文檔(api) -->
<!-- =================================================================== -->
<target name="javadoc" depends="usage,compile">
<delete dir="${doc.dir}"/>
<mkdir dir="${doc.dir}"/>
<javadoc packagenames="${packages}"
sourcepath="${src.dir}"
destdir="${doc.dir}"
author="true"
version="true"
use="true"
splitindex="true"
windowtitle="${app.name} API"
doctitle="${app.name}">
<classpath refid="compile.classpath"/>
</javadoc>
</target>
<!-- =================================================================== -->
<!-- 執行一個數據庫操作,其中demo為您的數據庫名,可測試相關jdbc連接
查詢語句為bin目錄下的db.sql -->
<!-- =================================================================== -->
<target name = "mysqlInit">
<echo>ANT 操作數據庫開始.....</echo>
<sql
driver = "org.gjt.mm.mysql.Driver"
url = "jdbc:mysql://localhost:3306/demo"
userid = "root"
password = "*******"
src = "db.sql"
print="yes"
="continue"
/>
</target>
<!--END-->
</project>
2、在"Easydone"project"demo"bin目錄下新建setEnv.bat
dos處理腳本,主要為設置環境變量(這樣做您無需手工配置環境變量,將整個工程移動到任何目錄都可以使用),內容如下:
set ANT_HOME=../../../platform/apache-ant-1.6.1
set JAVA_HOME=../../../platform/j2sdk1.4.2_08
set CLASSPATH=%JAVA_HOME%/lib/toos.jar;%JAVA_HOME%/lib/dt.jar
set CATALINA_HOME=../../../platform/jakarta-tomcat-5.0.19
set PATH=%ANT_HOME%/bin;%CATALINA_HOME%/BIN;%JAVA_HOME%/bin;%CATALINA_HOME%/BIN
3、服務控制腳本:
tomcat啟動服務:
在"Easydone"project"demo"bin目錄下新建
run.cmd:
call setEnv.bat
startup
tomcat停止服務:
在"Easydone"project"demo"bin目錄下新建
down.cmd
call setEnv.bat
shutdown
更新腳本:
在"Easydone"project"demo"bin目錄下新建
update.cmd
call setEnv.bat
ant -buildfile build.xml update
部署腳本:
在"Easydone"project"demo"bin目錄下新建
deploy.cmd
call setEnv.bat
ant -buildfile build.xml deploy
java doc 腳本:
在"Easydone"project"demo"bin目錄下新建
doc.cmd
call setEnv.bat
ant -buildfile build.xml javadoc
剩下的都在build.xml中,根據你的需要自己定義腳本程序就可以了
很簡單,這樣可控制你的應用。