Java GWT/Maven项目-Maven依赖项顺序错误

Java GWT/Maven项目-Maven依赖项顺序错误,java,eclipse,maven,gwt,dependencies,Java,Eclipse,Maven,Gwt,Dependencies,我在GWT/Maven应用程序中使用HtmlUnit(特别是WebClient类)库。但是出于某种原因,在使用的GWT Jar中似乎有一个非常旧的版本。在“订单和导出”选项卡中的“Java构建路径”下,我将“Maven依赖项”移到了顶部。所以它应该首先在这里寻找来源,对吗 为什么总是使用GWT Jar的旧版本?我怎样才能防止呢 在pom.xml中只显示一次: 两类: GWT将HtmlUnit用于GWTTestCases,并且只在计划于2014年在Google I/O上发布的GWT 3.0中进行

我在GWT/Maven应用程序中使用HtmlUnit(特别是WebClient类)库。但是出于某种原因,在使用的GWT Jar中似乎有一个非常旧的版本。在“订单和导出”选项卡中的“Java构建路径”下,我将“Maven依赖项”移到了顶部。所以它应该首先在这里寻找来源,对吗

为什么总是使用GWT Jar的旧版本?我怎样才能防止呢

在pom.xml中只显示一次:

两类:

GWT将HtmlUnit用于
GWTTestCase
s,并且只在计划于2014年在Google I/O上发布的GWT 3.0中进行模块化(使用声明/管理的依赖项)

Maven不支持任意类路径(只支持编译、测试和运行时),因此您别无选择,只能将HtmlUnit的使用转移到另一个不依赖GWT的Maven模块中

请注意,即使GWT使用托管依赖项,也无法解决您的问题:
GWTTestCase
随后会中断,因为您使用的版本(HtmlUnit 2.13)与GWT 2.5.1(HtmlUnit 2.9)中捆绑的on不向后兼容。

…或者正如科林所建议的,尝试使用(捆绑包)HtmlUnit 2.13的GWT 2.6.0-rc1。

GWT因将依赖项的古老版本嵌入其monster jar而臭名昭著(其Servlet版本曾一度过时十年);模块化GWT构建已经是一个“高优先级”项目,大约四年了。GWT 2.6.0-rc1使用HtmlUnit 2.13,您可能会考虑使用它。最糟糕的情况是,你发现了一个bug,最终版本2.6就更好了。