我是一名在Java方面有相当丰富经验的学生,但是对Maven来说是全新的。

我试图用jersey-server和jersey-client实现RESTful服务提供者和客户端。两者都还依赖jersey-json,以利用POJO和JSON之间的自动转换。它们都还取决于我自己实现的服务模型,POJO定义就驻留在该模型中。

但是,该代码对我不起作用。我花了几个小时在Internet上各处寻找解决方案。事实证明,失败的原因是我不小心将jersey-server和jersey-client的版本指定为1.14,但是将jersey-json的版本指定为1.9.1。

该服务器在开始时不工作,但有时突然开始工作。 (我不知道这是怎么发生的。)在将jersey-json版本更改为1.14之前,客户端一直无法工作。

为什么这些不同的依赖项需要具有相同的版本?

最佳答案

因为一个依赖另一个,否则存在兼容性问题。这就是依赖管理的全部意义。运行mvn dependency:tree以查看这些库之间如何精确关联。

在这种情况下,泽西岛库似乎都作为“捆绑包”一起发布-您需要一起使用这些捆绑包中的版本。参见:http://jersey.java.net/nonav/documentation/latest/chapter_deps.html

请注意,这是Jersey库而不是Maven的属性。

10-02 10:25
查看更多