【问题标题】:Ant Javac compile subpackage class files to the parent src directoryAnt Javac编译分包类文件到父src目录
【发布时间】:2020-12-02 18:43:29
【问题描述】:

我希望 Ant 1.9 能够将 servlet 类编译到父 src 目录,但文件系统具有包中的文件。不,这些包没有在 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>

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

【问题讨论】:

    标签: java ant package javac


    【解决方案1】:

    如果您在多个根目录中拥有源文件并希望将它们全部编译到一个根目录中,请使用&lt;src&gt; 元素而不是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>
    

    【讨论】:

    • 谢谢,这正是我想要的,我错过了。但是有 60 多个目录,我不想为每个目录命名。
    • @KeithS 那么我建议您阅读文档以了解srcdir 属性/&lt;src&gt; 元素是什么,以及它可以做什么:"@ 987654327@ 是类路径结构”。提示:“类路径结构”是指向更多文档的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多