Java GWT应用程序-有时可以编译,有时不能编译

问题描述 投票:1回答:2

希望我能提供所需的一切:

Java 8GWT 2.5.1Eclipse 2018-09(4.9.0)git

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

我可以在其中一台或多台计算机上成功编译(我们有一个Dev和一个QA服务器)。我可以让它们编译一次,两次甚至三遍。然后,在任何计算机上,它都会失败并且失败并且失败。

错误是这样:

[[ERROR]]'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编写代码一年多,但坦率地说,我很困惑。我不明白为什么它一次编译一次,而不是下次编译,即使在一次成功之后立即编译。对我而言,这表明每次都无法以相同,适当的顺序完成某项工作。

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

java eclipse gwt java-8
2个回答
2
投票

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

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

这是使用GWT的完整的Regex实用程序:

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);

希望这会有所帮助。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.