2010-10-11 36 views
1

我使用一个Ant任务来调用谷歌的GWT编译器,如:明确控制蚂蚁跳过任务,加快GWT编译

<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler"> 
<arg value="package.of.GWTClass" /> 
</java> 

这工作,但我想,以避免在重新编译整个项目每个Ant构建中都没有任何依赖关系发生了变化。我知道Ant不能自动跟踪这些依赖关系,但有什么方法可以手动对它们进行编码,并且在没有任何变化时有选择地跳过目标?

回答

0

您可以将if子句添加到您的蚂蚁目标。我们使用它,如下所示:

当你调用目标,你可以通过-D设置gwt属性使编译:

ant -Dgwt=yes gwt-compile 

if在目标相反的是unless

希望有所帮助。

1

你也可以考虑尝试在你的ANT构建中用java编译来并行GWT编译步骤。我们使用ANT的标签来执行GWT编译步骤以及标准java编译步骤。很显然,如果你的电脑有多个核心,这只会有帮助。

例如

<parallel> 
    <antcall target="gwt-compile"/> 
    <sequential> 
     <antcall target="compile/java"/> 
    </sequential> 
    <parallel> 
     <antcall target="compile/test-unit"/> 
     <antcall target="compile/test-integration"/> 
     <antcall target="compile/test-gwt"/> 
     <antcall target="compile/test-selenium"/> 
    </parallel> 
</parallel> 

我们还定义了针对性只是Firefox浏览器运行构建的测试部分(我们在打造专业化检查)模块文件,然后也支持全力打造所有的浏览器更完整的模块文件在持续集成构建上。

0

与gwt结合使用uptodate task。它所做的是检查一个文件是否比另一个文件更新,并设置属性(如果是)。您将gwt源文件与* .js输出文件的日期进行比较,如果它更近,则进行编译。

你必须得到gwt编译器将使用的所有文件,如果你只有一个模块名称并且不能很容易地构造出继承树,但是一个简单但并不总是最佳的方法是只需使用每个gwt的java文件。然后,在gwt编译任务中,在编译之前检查属性。