Java GWT 应用程序 - 编译有时有效,有时无效

Java GWT Application - Compile Works Sometimes and Sometimes Not

希望我提供所需的一切:

Java 8 GWT 2.5.1 月食 2018-09 (4.9.0) Git

我有一个无法持续编译的项目。在 Eclipse 中,我使用 GWT -> 编译选项进行编译,而在我们的 Web 服务器上,我们使用 Ant。

我可以在这些机器中的一台或多台上成功编译(我们有一个 Dev 和一个 QA 服务器)。我可以让他们编译一次,两次,也许三次。然后,在任何一台机器上,它都会失败,失败,失败。

错误是这样的:

[错误] 'jar:file:/C:/Users/htaylor/git/codemanagerclient/CodeManagerClient/war/WEB-INF/lib/guava-gwt-12.0.jar!/com/google/common/base/Strings.java' 中的错误 [错误] 第 1 行:无法解析类型 java.util.regex.Pattern。它是从所需的 .class 个文件

中间接引用的

我只用 Java 编码一年多了,坦率地说,我被难住了。我不明白为什么它会编译一次而不是下一次,即使在成功之后立即完成也是如此。对我来说,这表明每次都没有按照相同的、正确的顺序完成某些事情。

我只是想知道是否有人可以帮助阐明这一点。

您需要使用 GWT 库中的正则表达式:

import com.google.gwt.regexp.shared.MatchResult;
import com.google.gwt.regexp.shared.RegExp;

这是一个完整的 GWT 正则表达式实用程序:

public class RegexHelper {

    public static ArrayList<String> getMatches(String input, String pattern) {
        ArrayList<String> matches = new ArrayList<String>();
        RegExp regExp = RegExp.compile(pattern, "g");
        for (MatchResult matcher = regExp.exec(input); matcher != null; matcher = regExp.exec(input)) {
            for(int i=0;i<matcher.getGroupCount();i++) {
                if(i != 0) {
                    matches.add(matcher.getGroup(i));
                }
            }
        }
        return matches;
    }
}

你可以这样使用它:

RegexHelper.getMatches(INPUT_STRING, REGEX_PATTERN);

希望对您有所帮助。

感谢您的评论。我不同意你们说我们的东西太旧的说法。绝对是。原因很复杂。我只能说,我们正在努力。

我也很欣赏有关使用 GWT 库中的正则表达式的建议。我可以测试一下。

我确实解决了我的问题,与其说是解决它不如说是解决它。我能够确定我们只使用了 Strings.java class 中的一种方法,那就是 isNullOrEmpty()。而且我们只用了两次 class 几次。我刚刚在那些 class 中编写了该方法的本地版本,这意味着编译器不再寻找 class。它很俗气,本质上是一种闪避,但它在这种情况下有效。