在我的1.6.0_16 JDK上工作,我使用Apache CXF 2.5.2从WSDL生成我的存根类,它使用最新的jaxb-api 2.2.我知道可以使用jaxb-api 2.1,但为了避免兼容性问题,我宁愿让它使用当前版本.由于我的JDK具有jaxb 2.1,因此构建失败并显示以下消息:
error at @XmlElementRef(name = "protocol", namespace = "urn:ch.beo.emc", type = JAXBElement.class, required = false)
Run Code Online (Sandbox Code Playgroud)
因此,我尝试使用以下依赖项使maven包含最新的jaxb api和impl.
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.5</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
虽然这两个jar已经添加到Eclipse中的Maven Dependencies中,但错误消息在Eclipse和Maven构建中仍然存在.
如何在我的Maven构建中包含这些jar并让它们在Eclipse和目标系统中使用?
PS:请在这里找到完整的POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ch.beo</groupId>
<artifactId>emc.front</artifactId>
<version>3.1.3-SNAPSHOT</version>
<repositories>
<repository>
<id>jboss</id>
<name>JBoss</name>
<url>http://repository.jboss.org/maven2/</url>
</repository>
<repository>
<id>freehep</id>
<name>Freehep</name>
<url>http://java.freehep.org/maven2</url>
</repository>
<repository>
<id>JCurl</id>
<url>http://jcurl.berlios.de/m2/repo</url>
</repository>
<repository>
<id>JavaNet</id>
<url>http://download.java.net/maven/2/</url>
</repository>
<repository>
<id>djmaven2</id>
<url>http://www.fdvs.com.ar/djmaven2</url>
<name>DynamicJasper public Repository</name>
</repository>
</repositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<defaultGoal>compile</defaultGoal>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory> …Run Code Online (Sandbox Code Playgroud)