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

时间:2010-07-09 20:21:33

标签: gwt ant build-process build-automation

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

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

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

  1. Transformator 无法获取源文件的子集,仅获取整个集合。在这里,我们只能进行延迟构建 - 如果没有修改源文件 - 我们会跳过处理。
  2. Transformator 可以获取源文件的子集并生成部分结果 - 增量构建
  3. 什么是ant内部,第三方扩展或其他工具来实现延迟和增量构建? 你能提供一些广泛的构建文件示例吗?

    我感兴趣的是特别适合GWT编译器。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

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