如何使用Ant配置延迟或增量构建?

sea*_*eas 6 ant build-automation gwt build-process

Java编译器提供了增量构建,因此也是javac ant任务.但大多数其他流程却没有.

考虑到构建过程,它们将一些文件集(源)转换为另一组文件(目标).

我可以在这里区分两个案例:

  1. Transformator 无法获取源文件的子集,只能获取整个集合.在这里我们只能进行延迟构建 - 如果没有修改源文件 - 我们跳过处理.
  2. Transformator 可以获取源文件的子集并生成部分结果 - 增量构建.

什么是ant内部,第三方扩展或其他工具来实现延迟和增量构建?你能提供一些广泛的构建文件示例吗?

我感兴趣的是特别适用于GWT编译器.

Mos*_*lum 5

UPTODATE任务是Ant的通用解决这个问题.它足够灵活,适用于需要延迟编译或增量编译的大多数情况.

我遇到了和你一样的问题:我有一个GWT模块作为我的代码的一部分,我不想支付(重大!)成本,当我不需要时重新编译它.在我的案例中的解决方案看起来像这样:

<uptodate property="gwtCompile.mymodule.notRequired"
  targetfile="www/com.example.MyGwtModule/com.example.MyGwtModule.nocache.js">
    <srcfiles dir="src" includes="**"/>
</uptodate>

<target name="compile-mymodule-gwt" unless="gwtCompile.mymodule.notRequired">
    <compile-gwt-module module="com.example.MyGwtModule"/>
</target>
Run Code Online (Sandbox Code Playgroud)


Hil*_*amp 1

与 GWT 相关,不可能进行增量构建,因为 GWT 编译器会立即查看所有源代码并优化和内联代码。这意味着未更改的代码可能会以不同的方式进行评估,例如,如果您开始使用未更改的类中的方法,则该方法在之前的编译步骤中被省略,但现在需要进行编译。

  • 但是,如果自上次编译以来没有 Java 源(用于生成 JS 输出)发生更改,则无需重新编译任何内容,包括优化、内联和代码删除...... (2认同)