GWT 从 2.7.0 升级。到 2.8.2(或 2.8.1)不工作

GWT upgrade from 2.7.0. to 2.8.2 (or 2.8.1) not working

我正在尝试将使用 Google 应用程序引擎和 GWT 的 Eclipse(Mars 2,Mac)项目升级到 gwt 版本 2.8.2,但出现以下错误:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.gwt.util.regexfilter.RegexFilter: method <init>()V not found
    at com.google.gwt.util.regexfilter.WhitelistRegexFilter.<init>(WhitelistRegexFilter.java:21)
    at com.google.gwt.dev.jjs.JJSOptionsImpl.<init>(JJSOptionsImpl.java:54)
    at com.google.gwt.dev.PrecompileTaskOptionsImpl.<init>(PrecompileTaskOptionsImpl.java:39)
    at com.google.gwt.dev.CompilerOptionsImpl.<init>(CompilerOptionsImpl.java:30)
    at com.google.gwt.dev.Compiler.main(Compiler.java:108)

我找到了使我的 java 编译器级别和 java facet 达到 1.8 的解决方案,但它不起作用。

我的类路径中还有:

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 8 [1.8.0_172]">
        <attributes>
            <attribute name="owner.project.facets" value="java"/>
        </attributes>
    </classpathentry>

该错误可能是混合使用不同版本的 GWT 的症状。在从 2.7 升级到 2.8 的过程中,您的路径上可能有多个版本的 GWT jar?

问题出在 WebContent/lib 文件夹中的 gwt-servlet.jar 文件,因为它来自 gwt-2.7.0。尽管我在 Order 和 Export(java 构建路径属性)中尝试了不同的设置,但直到我从 gwt-2.8.1.

复制 gwt-servlet.jar 文件后,编译器才开始工作