如何只编译gwt模块的更改部分?

时间:2011-07-05 07:31:11

标签: eclipse gwt maven gwt-compiler

我们决定在1周前在我们的应用程序中使用gwt模块。我们使用gwt-maven-eclipse三重奏,我们已经配置了阶段和目标。我们还在进行上下文部署以减少开发和测试时间。

BUT;

当我们申请packagetomcat:deploy时,gwt模块为re-compiling(包括未更改的模块)。

<set-property name="user.agent" value="gecko1_8"></set-property>
<extend-property name="locale" values="en_UK"></extend-property>

我已经在这里设置了这些属性以加快编译时间,但这是我想要的...... 我还在eclipse中配置了 maven生命周期映射,以便在任何资源发生变化时触发gwt:compile process-resources resources:testResources。但它阻止了eclipse,这也无助于编译时间。

这是gwt-maven-plugin

中的pom.xml配置
<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <version>2.3.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
                <!--
                    Plugin configuration. There are many available options, see
                    gwt-maven-plugin documentation at codehaus.org
                -->
                <configuration>
                    <runTarget>A.jsp</runTarget>
                    <runTarget>B.jsp</runTarget>
                    <hostedWebapp>${webappDirectory}</hostedWebapp>
                </configuration>
            </plugin>

有什么想法可以帮助我吗?

1 个答案:

答案 0 :(得分:5)

gwt-maven-plugin尝试(很难)避免在代码未更改时重新编译模块,但即使这需要一些时间(仍然少于重新编译模块;不幸的是,如果它检测到模块需要要重新编译,它总计GWT编译时间。)

如果您知道,则不需要gwt:compile,您可以将-Dgwt.compiler.skip=true传递给Maven构建,以跳过目标并继续“运行”以前编译的代码。同样,如果您知道需要 gwt:compile,则可以通过-Dgwt.compiler.force=true来绕过“最新检查”。