ant打包一记

ant打包一记
ant打包一记
By  凌云志 发表于 2007-6-10 13:21:00 

以前对于ant的使用总是避而不触,总以为有点难度,最近一直看我们项目中的build.xml忽而觉得非常简单,也模仿着在我的www.javaedu.com开发上使用了一下,非常不错,以下是我的打包文件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" />
 
 <!--用于输出的临时文件夹与打包的文件夹-->
 <property name="temp.dir"     value="D:\temp" />
 <property name="war.dir"      value="D:\war" />

 <!--对于不同环境的war包,使用不同的配置文件-->
 <property name="生产.dir"     value="bak\生产" />
 <property name="开发.dir"     value="bak\开发" />
 
 <!-- 定义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}/开发/ROOT.war"/>
  <delete file="${war.dir}/生产/ROOT.war"/>
 </target>

 <!-- 初始化任务 -->
 <target name="init" depends="clean">
 </target>

 <!-- 编译 -->
 <target name="compile" depends="init" description="compile the source files">
  <mkdir dir="${temp.dir}/生产" />
  <mkdir dir="${temp.dir}/开发" />  
  <mkdir dir="${classes.dir}" />

  <javac srcdir="${src.dir}" destdir="${classes.dir}"  debug="true" encoding="GB2312">
   <classpath refid="master-classpath" />
  </javac>

  <copy todir="${temp.dir}/生产" overwrite="true">
   <fileset dir="${WebContent.dir}">
    <include name="**/**" />
   </fileset>
  </copy>
  
  <copy todir="${temp.dir}/生产/WEB-INF/classes" overwrite="true">
   <fileset dir="${生产.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}/开发" overwrite="true">
   <fileset dir="${WebContent.dir}">
    <include name="**/**" />
   </fileset>
  </copy>
    
  <copy todir="${temp.dir}/开发/WEB-INF/classes" overwrite="true">
   <fileset dir="${开发.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}/生产" />
  <mkdir dir="${war.dir}/开发" />
  
  <jar jarfile="${war.dir}/生产/ROOT.war">
   <fileset dir="${temp.dir}/生产">
    <include name="**/*" />
   </fileset>
  </jar>
  
  <jar jarfile="${war.dir}/开发/ROOT.war">
   <fileset dir="${temp.dir}/开发">
    <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的时候一定要小心,别写错了,我就是因为粗心,在写下面代码的时候:

   <fileset dir="${生产.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>

不小心在红色代码前加了一个“.”,结果报了一个type   doesn't   support   nested   text   data.   的错,我找了半天没找出原因,到网上搜了一下竟然没有找到答案,后来才发现自己写错了,大汗,改正后,搞定,爽啊。是为记。

你可能感兴趣的:(ant打包一记)