GWT-Maven只编译gwt.rpc

时间:2013-08-14 01:50:53

标签: maven gwt

我遇到的情况是我通过-noserver进行调试,每当我的一个RPC对象发生更改或者出现序列化错误时,它就会强制我重新编译我的gwt应用程序(这在GWT文档中有详细描述,我明白为什么它正在发生。)

话虽这么说,我们的项目变得越来越大,编译需要一段时间才能完成,这正在减慢我们的开发过程。我尽可能地对它进行了优化(使用-draftCompile,只进行单个排列,并跳过所有测试),但它仍然很慢,而且我有一台非常野兽的计算机。

这让我想知道这里更好的选择是让编译器只输出必要的文件以使序列化正常工作。

任何人都知道这是否可行?

谢谢!

1 个答案:

答案 0 :(得分:-2)

你可以使用maven目标来做到这一点。 在Eclipse“运行配置”中,我有一个特定的配置。

Goals: gwt:generateAsync gwt:i18n gwt:css
Profiles: dev-ff

gwt:generateAsync目标用于生成RPC。这是gwt-maven-plugin的标准目标(假设你正在使用它)。 配置文件:dev-ff确保我只生成Firefox的代码。

这是maven插件配置的一部分。注意目标定义。您至少需要servicePattern属性来告诉插件你的RPC接口在哪里。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>${gwt-maven-plugin.version}</version>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>test</goal>
                <goal>i18n</goal>
                <goal>css</goal>
                <goal>generateAsync</goal>
            </goals>
        </execution>
    </executions>
    <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
                    documentation at codehaus.org -->
    <configuration>
        <servicePattern>**/*RPC.java</servicePattern>
    </configuration>
</plugin>

执行此类操作后,我经常不得不打开生成的异步文件,以使它们与Eclipse同步。之后我们发现我们可以删除目标/文件夹中的gwt-unitCache /文件夹,以强制应用程序使用新的RPC类。

有关该插件的更多信息是available here