以前對(duì)于ant的使用總是避而不觸,總以為有點(diǎn)難度,最近一直看我們項(xiàng)目中的build.xml忽而覺得非常簡單,也模仿著在我的www.javaedu.com開發(fā)上使用了一下,非常不錯(cuò),以下是我的打包文件build.xml:
<?xml version="1.0"?> <project name="payManager" default="all" basedir="."> <property name="src.dir" value="JavaSource" /> <property name="classes.dir" value="WebContent/WEB-INF/classes" /> <property name="lib.dir" value="WebContent/WEB-INF/lib" /> <property name="WebContent.dir" value="WebContent" /> <!--用于輸出的臨時(shí)文件夾與打包的文件夾--> <property name="temp.dir" value="D:\temp" /> <property name="war.dir" value="D:\war" />
<!--對(duì)于不同環(huán)境的war包,使用不同的配置文件--> <property name="生產(chǎn).dir" value="bak\生產(chǎn)" /> <property name="開發(fā).dir" value="bak\開發(fā)" /> <!-- 定義classpath --> <path id="master-classpath"> <fileset file="${lib.dir}/*.jar" /> <pathelement path="${classes.dir}" /> </path>
<target name="clean"> <delete dir="${temp.dir}" /> <delete dir="${classes.dir}" /> <delete file="${war.dir}/開發(fā)/ROOT.war"/> <delete file="${war.dir}/生產(chǎn)/ROOT.war"/> </target>
<!-- 初始化任務(wù) --> <target name="init" depends="clean"> </target>
<!-- 編譯 --> <target name="compile" depends="init" description="compile the source files"> <mkdir dir="${temp.dir}/生產(chǎn)" /> <mkdir dir="${temp.dir}/開發(fā)" /> <mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" encoding="GB2312"> <classpath refid="master-classpath" /> </javac>
<copy todir="${temp.dir}/生產(chǎn)" overwrite="true"> <fileset dir="${WebContent.dir}"> <include name="**/**" /> </fileset> </copy> <copy todir="${temp.dir}/生產(chǎn)/WEB-INF/classes" overwrite="true"> <fileset dir="${生產(chǎn).dir}"> <include name="jlo_logging.xml" /> <include name="log4j.properties" /> <include name="mvncore.xml" /> <include name="mvnForum_i18n_zh_CN.properties" /> <include name="mvnforum.xml" /> <include name="whirlycache.xml" /> </fileset> </copy> <copy todir="${temp.dir}/開發(fā)" overwrite="true"> <fileset dir="${WebContent.dir}"> <include name="**/**" /> </fileset> </copy> <copy todir="${temp.dir}/開發(fā)/WEB-INF/classes" overwrite="true"> <fileset dir="${開發(fā).dir}"> <include name="jlo_logging.xml" /> <include name="log4j.properties" /> <include name="mvncore.xml" /> <include name="mvnForum_i18n_zh_CN.properties" /> <include name="mvnforum.xml" /> <include name="whirlycache.xml" /> </fileset> </copy> </target>
<!--打包--> <target name="war" depends="compile"> <mkdir dir="${war.dir}/生產(chǎn)" /> <mkdir dir="${war.dir}/開發(fā)" /> <jar jarfile="${war.dir}/生產(chǎn)/ROOT.war"> <fileset dir="${temp.dir}/生產(chǎn)"> <include name="**/*" /> </fileset> </jar> <jar jarfile="${war.dir}/開發(fā)/ROOT.war"> <fileset dir="${temp.dir}/開發(fā)"> <include name="**/*" /> </fileset> </jar> <delete dir="${temp.dir}"/> </target> <target name="all" depends="war"> <delete dir="${classes.dir}" /> <delete dir="${temp.dir}" /> </target>
</project>
值得注意的是,在書寫build.xml的時(shí)候一定要小心,別寫錯(cuò)了,我就是因?yàn)榇中模趯懴旅娲a的時(shí)候:
<fileset dir="${生產(chǎn).dir}"> .<include name="jlo_logging.xml" /> <include name="log4j.properties" /> <include name="mvncore.xml" /> <include name="mvnForum_i18n_zh_CN.properties" /> <include name="mvnforum.xml" /> <include name="whirlycache.xml" /> </fileset>
不小心在紅色代碼前加了一個(gè)“.”,結(jié)果報(bào)了一個(gè)type doesn't support nested text data. 的錯(cuò),我找了半天沒找出原因,到網(wǎng)上搜了一下竟然沒有找到答案,后來才發(fā)現(xiàn)自己寫錯(cuò)了,大汗,改正后,搞定,爽啊。是為記。
|