如何让maven在JDK中使用不同的JAXB库
我正在使用java 1.6.0_14,其中包含注释javax.xml.bind.annotation.XmlElement
的实现。 但是JDK中的那个仅适用于Method和Field。
我发现jaxb-api.jar版本2.2.3也允许这个参数,所以我想使用这个版本。
问题是,我无法弄清楚如何让maven使用这个优先于JDK中的那个,这样当我编写代码时,它不会抱怨注释被用在一个无效的位置。
有什么建议么?
在您的POM中包含显式依赖项:
javax.xml.bind jaxb-api 2.2.3
您必须使用Java认可的覆盖机制。 我直接从Apache CXF网站上获得了这个。
JAXB是CXF的默认数据绑定。 如果您没有在Spring配置中或通过API指定其他数据绑定,那么您将获得JAXB。 自2.3.x以来,CXF的发布使用了JDK7默认的JAXB 2.2,但是在JDK 6上运行的Maven用户需要使用Java认可的覆盖机制来使用JAXB 2.2而不是JAXB 2.1。
http://cxf.apache.org/docs/jaxb.html顶部的第一段。 您基本上下载了新版本的jaxb,然后告诉JRE / JDK加载它而不是它附带的默认实现。