java - 如何将 .java 源复制到 Ant javac destFolder

标签 java ant build-process

我知道如何使用 Ant 复制文件和文件夹,但我感兴趣的是,我是否可以以及如何让 javac 任务将正在编译的相同源代码复制到输出目录。

基本上,它与将源包含在 jar 任务中的选项非常相似。

最佳答案

为什么不简单地使用 copy任务,以及 javac一个?

您甚至可以使用 ant 的宏来定义您自己的 copyingjavac 任务,该任务执行这两个操作,唯一的问题是正确处理文件集,以准确复制正在编译的文件集。

如果你只想在编译成功时复制一个文件,你将不得不构建一个自定义的 ant 任务(扩展默认的 javac 任务),或者使用 ant_contrib foreach 任务。

宏定义看起来像:

<macrodef name="copyingjavac">
  <attribute name="srcdir"/>
  <attribute name="destdir""/>
  <element name="arginclude"/>
  <sequential>
    <javac srcdir="@{srcdir}" destdir="@{destdir}" updatedProperty="build.success">
       <arginclude/>
    </javac>
    <copy todir="@{destdir}">
      <fileset dir="@{srcdir}">
        <arginclude/>
      </fileset>
    </copy>
    <fail unless="build.success">
      Build failed. Check the output...
    </fail>
  </sequential>
</macrodef>

关于java - 如何将 .java 源复制到 Ant javac destFolder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948489/

相关文章:

java - 如何使用java在struts treenode标签中显示动态字符串值

java - 用于 ant 的文件路径模式应该是什么,以选择未知子文件夹名称的所有内容文件

java - Ant 脚本 : Have <exec> tag dump out entire command line

java - 从公共(public)基础(Java)构建不同的产品

java - Spring Reactive WebClient

java - 如何处理来自 JDesktopPane 的 JInternalFrame Close 操作?

java - 使内存限制成为构建过程一部分的强大策略是什么?

ant - 我可以编写一个在从另一个 ant 任务执行时接受参数的 ant 任务吗?

java - Maven pom.xml - 构建模块+自构建

java - transient 变量如何跨网络携带状态?