Ant Javac编译分包class个文件到父src目录

Ant Javac compile subpackage class files to the parent src directory

我希望Ant 1.9 能够编译servlet classes 到父src 目录,但是文件系统有packages 中的文件。不,这些包没有在 servlet 文件中声明。

代码与同一目录中的所有 servlet 一起部署。我想我可以创建一个 ant 复制命令来执行此操作,但我更希望有一个 ant javac 解决方案。

手动更改到每个子目录后,这将是 'javac -d .. *.java',不包括默认包中已有的文件。这是非常不规则的,但我无法更改包的定义方式,也无法更改执行代码的 url。

<target name="compileServlet" description="Compiles Java source files.">
            <javac srcdir="${servlets.dir}" destdir="$(servlets.dir}" debug="true" encoding="ISO-8859-1" source="1.7" target="1.7" failonerror="true">
                    <classpath path="${env.CLASSPATH}" />
                    <include name="**/*.java"/>
            </javac>
    </target>

现在当我 运行 这个蚂蚁 build.xml 时,没有生成 class 文件。我有什么想法可以解决这个问题吗?

如果您在多个根目录中有源文件并希望将它们全部编译到一个根目录中,请使用 <src> 元素而不是 srcdir 属性。

这里是 documentation 中显示的示例:

<javac destdir="${build}"
       classpath="xyz.jar"
       debug="on">
  <src path="${src}"/>
  <src path="${src2}"/>
  <include name="mypackage/p1/**"/>
  <include name="mypackage/p2/**"/>
  <exclude name="mypackage/p1/testpackage/**"/>
</javac>