我也没好好看过,给你个例子吧!
build.xml
<project name="aaa" default="compile" basedir=".">  <property name="app.name"       value="SYS-001"/>
  <property name="deploy.home"    value="${project.home}/webapps/${app.name}"/>
  <property name="dist.home"      value="${deploy.home}"/>
  <property name="dist.src"       value="${app.name}.jar"/>
  <property name="dist.war"       value="${app.name}.war"/>
<!--
  <property name="javadoc.home"   value="${deploy.home}/javadoc"/>
-->  <target name="prepare">
    <mkdir  dir="${deploy.home}"/>
    <copy todir="${deploy.home}">
      <fileset dir="web"/>
    </copy>
    <mkdir  dir="${deploy.home}/WEB-INF"/>
    <copy  file="etc/web.xml" tofile="${deploy.home}/WEB-INF/web.xml"/>
    <mkdir  dir="${deploy.home}/WEB-INF/classes"/>
<!--
    <mkdir  dir="${javadoc.home}"/>
-->
  </target>
  <target name="clean">
    <delete dir="${deploy.home}"/>
  </target>
  <target name="compile" depends="prepare">
    <javac srcdir="src" destdir="${deploy.home}/WEB-INF/classes"
           classpath="${deploy.home}/WEB-INF/classes"
           debug="on" optimize="off" deprecation="off"/>
    <copy   todir="${deploy.home}/WEB-INF/classes">
      <fileset dir="src" includes="**/*.properties"/>
    </copy>
  </target>
<!--
  <target name="javadoc" depends="prepare">
    <javadoc sourcepath="src" packagenames="*"
                destdir="${javadoc.home}"/>
  </target>
-->
<!--
  <target name="all" depends="clean,prepare,compile,javadoc"/>
-->
  <target name="all" depends="clean,prepare,compile"/>
  <target name="dist" depends="prepare,compile">
    <jar jarfile="${dist.home}/${dist.src}"
         basedir="." includes="*"/>
    <jar jarfile="${dist.home}/${dist.war}"
         basedir="${deploy.home}" includes="*"/>
  </target>
</project>
build.bat
@echo offset _CP=%CP%if not "%PROJECT_HOME%" == "" goto set_antpathset PROJECT_HOME=%TOMCAT_HOME%:set_antpathif not "%ANT_HOME%" == "" goto set_ant_classpathset ANT_HOME=%TOMCAT_HOME%:set_ant_classpathset CP=%ANT_HOME%\lib\ant.jarif not "%ENHYDRA_HOME%" == "" goto set_enhydra_classpathset CP=%CP%;%TOMCAT_HOME%\lib\servlet.jargoto set_other_classpath:set_enhydra_classpathset CP=%CP%;%ENHYDRA_HOME%\lib\enhydra.jar:set_other_classpathset CP=%CP%;%ANT_HOME%\lib\jaxp.jar;%ANT_HOME%\lib\parser.jar
set CP=%CP%;%JAVA_HOME%\lib\tools.jar
java -classpath %CP%;%CLASSPATH% org.apache.tools.ant.Main -Dproject.home=%PROJECT_HOME% %1 %2 %3 %4 %5 %6 %7 %8 %9set CP=%_CP%
set _CP=

解决方案 »

  1.   

    目录直接加就可以了2。它自己知道检查,不用你操心ANT是很好的东西,慢慢体会给你一个例子<?xml version="1.0" encoding="gb2312"?><project name="EasyMessage" default="package" basedir="."> <property file="build.properties"/>

    <path id="alloy.lib">
    <fileset dir="${lib.dir}">
    <include name="alloy.jar"/>
    <include name="feels.jar"/>
    </fileset>
    </path>

    <target name="prepare" description="初始化,生成目录">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.dir.classes}"/>
    </target>

    <target name="clean" description="清除目录">
    <delete dir="${build.dir}"/>
    </target>

    <target name="compile" depends="prepare" description="编译">
    <javac classpath="."
    srcdir="${src.dir}"
    destdir="${build.dir.classes}">
    <classpath refid="alloy.lib"/>
    </javac>
    </target>

    <target name = "package" depends = "compile" description="打包">
    <jar jarfile = "${classes.package}"
    basedir = "${build.dir.classes}"
    includes = "soft/**">
    <manifest>
    <attribute name = "Main-Class" value = "${main.class}"/>
    <attribute name = "Class-Path" value = "${runtime.path}"/>
    </manifest>
    </jar>
    <jar jarfile = "${src.package}"
    basedir = "${src.dir}"
    includes = "soft/**">
    </jar>
    </target>

    </project>
      

  2.   

    1. 假如目录已经搞定,就是将要加的目录放在basedir属性所指的目录下就可以了。
    2. 我试了一下,根据class文件的时间属性,可以看出,即使没有改变原文件,还是重新编译了一遍,请问是不是要在build.xml中有所设置?如果工程很大,重复编译很费时间。
    下面是我的build.xml:
    <?xml version="1.0"?><project name="TestGui" default="dist" basedir=".">    <property name="src" location="src"/>
        <property name="build" location="build"/>
        <property name="dist"  location="dist"/>
        <property name="resource"  location="resource"/>    <target name="init">
            <mkdir dir="${build}"/>
        </target>
        
        <target name="compile" depends="init">
            <javac srcdir="${src}" destdir="${build}"/>
        </target>
        
        <target name="dist" depends="compile">
            <mkdir dir="${dist}/lib"/>
            
            <jar jarfile="${dist}/lib/AntTest-${DSTAMP}.jar"
                    basedir="${build}">
                <manifest>
    <attribute name = "Main-Class" value = "com.myCompany.myPackage.AntTest"/>
        </manifest>
            </jar>
            </target>
        
        <target name="clean">
            <delete dir="${build}"/>
            <delete dir="${dist}/lib"/>
        </target>
    </project>