2011-05-22 141 views
1

嗨 我想知道是否有人知道一种方法来命令首先调用哪些依赖项。我遇到的问题是我包含geronimo jaxws spec 2.2,但javax.xml.ws.Service的jre版本正在被拾取而不是依赖版本。我试图把依赖首先放在依赖列表上,并试图依赖管理没有成功(也许我错了)。在日食中,我可以告诉它首先在Maven依赖关系中拾取罐子,但我不知道如何在maven中执行此操作。Maven依赖项排序

非常感谢。

+0

你是否遇到过这个问题?与jdk相比,你不能给予依赖jar更高的优先级。 gernonimo jaxws已经引发了一个类似的bug,他们通过向jar的元数据添加新的属性来解决这个问题。请点击链接了解更多信息https://issues.apache.org/jira/browse/AXIS2-4927 – Prabhjot 2011-05-22 13:35:42

+0

干杯感谢 - 将相关的geronimo jars放入认可的董事会解决了问题。看起来geronimo家伙正在努力。我认为它也适用于jaxb罐子。 – JanusFox81 2011-05-24 08:03:26

回答

1

我不认为你可以以你想要的方式在maven中定义依赖关系。您将不得不使用java import语句来选择要使用的服务。

帮助诊断这类问题的一个技巧是使用:mvn dependency:tree。这至少会确认您的Geronimo依赖关系正在被正确引入。

+0

感谢您的回复。问题在于它将是java-javax.xml.ws.Service中的相同包签名。它由依赖项和jre导入。依赖是一个更新的版本,但jre版本被拿起来代替。 – JanusFox81 2011-05-23 17:11:00

+0

我无法弄清楚如何在maven中做到这一点,但目前我正在使用的一种可能的解决方案是将所需的jar放入jre/lib/endorsed目录(如果它不存在,则创建背书目录)。 jaxws和jaxb jar进入了Java 6,而不是Java 5的版本。无论您定义的依赖关系是否更新,jre的版本都会被maven使用。将它们放入背书目录将覆盖jre版本。 – JanusFox81 2011-06-22 07:47:05