我正在查看我在IntelliJ中构建的内部Maven应用程序(在Eclipse中的结果相同),并且一切看起来都非常干净。
我运行干净并从IntelliJ编译(使用IntelliJ构建或使用IntelliJ Maven支持),一切都编译好。
但是当我从命令行运行构建时(mvn clean compile)我得到了构建异常(见下文)。
命令行似乎正在寻找一个泛化参数(使用""方法),我们确实正确地传递了它。然而,它抱怨我们传递的是非通用参数。
显然命令行上的mvn正在使用"的另一个版本"方法比IntelliJ。
有没有办法让Maven告诉我它所使用的类的哪个版本,包含jar,工件和包含jar的版本?
这是准确的错误
[ERROR] \dev\try-deploy-1\src\main\java\com\victor\webui\WebUserInterface.java:[147,47]
attribute(java.lang.String,org.hamcrest.Matcher<java.lang.String>) in
org.openqa.selenium.lift.Matchers cannot be applied to
(java.lang.String,org.hamcrest.Matcher<java.lang.Object>)
答案 0 :(得分:1)
你有可能在某个地方有另一个版本的课程吗?尝试在文件中的新行添加注释,以便行号更改,并重新运行maven编译,以查看它是否仍然为错误提供相同的行号。
答案 1 :(得分:1)
在Eclipse中,抱歉,我知道您使用的是IntelliJ,maven构建通常会进行离线构建,这就是为什么它如此之快。有一种方法可以强制它用所有的罐子做清洁,然后当我进入一个绑定时我会使用它。它是Update Project命令,它有一个框来强制更新快照和版本。也许Intellij有类似的东西?此外,我将验证您在命令行上使用的版本与IntelliJ使用的版本相同(我安装了几个版本)。您可以在IntelliJ和
中查看设置 mvn -v
。最后,我要确保您用于命令行和IntelliJ的settings.xml文件是同一个文件。
祝你好运。