比如说src目录下面有两个java源文件,同时还有一个文件夹a,a下面又有java源文件,我试验ant的编译结果是把所有的class文件都放在另一个目录b下面了。如何才能让编译后的结果是在b目录下面也建立和src目录一样的结构,各文件夹下面的class文件分别对应那边的java文件?我简单做了几个文件,写了一个build.xml,各位下载附件帮我看看怎么弄,谢谢~~~

解决方案 »

  1.   

    看不到附件啊,不过ant好像可以直接默认创建目录结构将编译后的文件放进去。
      

  2.   

    在build.properties文件里面定义路径,在build.xml里面可以直接指定的
    例如:
    build.properties中定义
    source.dir=./a:/sources
    class.dir=./b:/classes
    build.xml<target name="compile" depends="clean" description="编译">
       <mkdir dir="${class.dir}"/>
       <javac srcdir="${source.dir}"
        destdir="${class.dir}"
        classpath=""
       nowarn="true"
       encoding="Windows-31j"
        debug="on" />
        <copy todir="${class.dir}">
          <fileset dir="${class.dir}">
           <include name="**/*.java
          </fileset>
        </copy>
      </target>你按你的要求修改吧。
      

  3.   

    谢谢帮忙,论坛不能上传附件真郁闷。我按楼上老大的代码试了,还是不行啊。我把代码贴出来:build.properties的
    [code=INIFile]
    source.dir=./src
    class.dir=./classes
    [/code]
    build.xml的:<project name="MyProject" default="compile" basedir="."> <property file="build.properties" />

    <target name="compile" depends="clean" description="编译">
          <mkdir dir="${class.dir}"/>
          <javac srcdir="${source.dir}"
            destdir="${class.dir}"
            classpath=""
              nowarn="true"
              encoding="Windows-31j"
            debug="on" />
        <copy todir="${class.dir}">
          <fileset dir="${class.dir}">
              <include name="**/*.java" />
          </fileset>
        </copy>
      </target> <!-- 清空 -->
      <target name="clean" >
        <delete dir="${class.dir}"/>
      </target>

    </project>
    编译结果都在classes目录,我想要的是Test.class文件放在anttest/classes/new目录下啊
      

  4.   

     <target name="compile" description="编译Java文件">
            <mkdir dir="${build.dir}"/>
            <javac destdir="${build.dir}" target="1.4" debug="true"
                deprecation="false" optimize="false" failonerror="true">
                <src path="${src.java.dir}"/>
                <classpath refid="master-classpath"/>
            </javac>
        </target>------------------
     <copy todir="${class.dir}">
          <fileset dir="${class.dir}">
              <include name="**/*.java" />
          </fileset>
        </copy>
    这个是要做什么????
      

  5.   

    学习ant,有些源代码,都配有build.xml,但欧不会用,还得把他们重新部署到服务器,比较郁闷
      

  6.   

    http://topic.csdn.net/u/20090303/11/65fb065c-2473-4d24-87e3-5282d7ae894b.html