Maven 2 Maven不接受JDK1.6捆绑库
我们的一个类使用JDK1.6的捆绑jaxb api。当我尝试使用maven编译它时(JAVA_HOME设置为JDK 1.6,它在IDE中显示maven使用JDK 1.6运行),我得到了一个jaxb库的类not found错误。该类存在于jdk1.6lib文件夹下的rt.jar中。有什么想法吗?尝试将此插件添加到pom.xml Maven build部分:Maven 2 Maven不接受JDK1.6捆绑库,maven-2,jaxb,jdk1.6,Maven 2,Jaxb,Jdk1.6,我们的一个类使用JDK1.6的捆绑jaxb api。当我尝试使用maven编译它时(JAVA_HOME设置为JDK 1.6,它在IDE中显示maven使用JDK 1.6运行),我得到了一个jaxb库的类not found错误。该类存在于jdk1.6lib文件夹下的rt.jar中。有什么想法吗?尝试将此插件添加到pom.xml Maven build部分: <build> <plugins> <plugin> &l
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
maven编译器插件
2.3.1
1.6
1.6
更新:这不起作用。
你试过这个吗
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>
javax.xml.bind
jaxb api
2.1
系统
${java.home}/lib/rt.jar
嗯。。。该错误是由于使用了sun的一个内部类,该类在maven编译期间不可用。不过这是一个有趣的场景
我的项目使用sun内部JAXB库提供的名称空间映射器。它在非mavenized eclipse环境中编译(带有警告),因为rt.jar位于类路径中。我们开始对这个项目进行专业化,突然间我得到了一个未找到的类。在谷歌搜索之后,我发现了这两个帖子,这让我朝着正确的方向前进
底线:不要使用内部库(包名称中包含内部库) 特例是什么?试试我的第二个解决方案。很抱歉,我现在无法重现你的问题:-)嗨,谢谢你的帖子。正如我在回答中指定的那样,使用内部类(com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper)不是一个好的实践,因此,我没有让它按原样工作,而是删除了对内部jaxb实现的依赖,并将代码更改为从jaxb ri导入。这解决了我的问题。