JUnit 4.10与hamcrest冲突 - 但是它来自哪里?

时间:2017-11-24 18:29:56

标签: java eclipse scala maven junit

我正在使用安装了Scala IDE的Eclipse Oxygen 1a,并将遗留项目导入其中。我一直在更新依赖项并试图解决各种警告和冲突,但遇到了一个令我难过的问题。

在代码中有以下内容:

val messageMatcher = equalTo(expectedMessage)
messageMatcher.describeMismatch(item, mismatchDescription);
messageMatcher.matches(item.toString)

现在,当我点击“equalTo”时,它会跳转到hamcrest-all-1.3.jar中 Matchers.class 的源代码。然而,describeMismatch行显示错误:

value describeMismatch is not a member of org.hamcrest.Matcher[String]

当我点击下一行“messageMatcher.matches”时,它会尝试从junit-4.10-sources.jar打开 Matcher.class 源。

现在我知道junit 4.10和hamcrest之间存在冲突,因为junit有一个旧版本的hamcrest作为传递依赖,但令我困惑的部分是我没有在任何地方使用junit 4.10。我跑的时候:

$ mvn dependency:tree

没有提到junit 4.10。我还在整个目录结构上做了一个grep,在项目中包含的任何文件中都没有提到junit 4.10。

如果我从我的本地仓库中删除junit 4.10,则上面的hamcrest错误会消失,但会被错误替换

Project 'myproject' is missing required library: '~/.m2/repository/junit/junit/4.10/junit-4.10.jar'"

我很困惑......

编辑:
“现在我知道junit 4.10和hamcrest之间存在冲突,因为junit有一个旧版本的hamcrest作为传递依赖,但令我困惑的部分是我没有在任何地方使用junit 4.10。”

0 个答案:

没有答案