Ant Javac将子包类文件编译到父src目录

问题描述

我希望Ant 1.9能够将servlet类编译到父src目录,但是文件系统中的文件位于软件包中。不,软件包未在servlet文件中声明。

该代码与所有servlet部署在同一目录中。我以为可以创建一个ant copy命令来执行此操作,但我希望有一个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>

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

解决方法

如果源文件位于多个根目录中,并且想要将它们全部编译到一个根目录中,请使用<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>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...