Maven 2 Maven不接受JDK1.6捆绑库

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

我们的一个类使用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>
            <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导入。这解决了我的问题。