Maven没有选择JDK 1.6捆绑库

时间:2010-06-24 13:57:26

标签: maven-2 jaxb jdk1.6

我们的一个类使用jdk 1.6的捆绑jaxb api。当我尝试使用maven编译它时(JAVA_HOME设置为JDK 1.6并且它在IDE中显示maven使用JDK 1.6运行)我得到jaxb库的类找不到错误。有问题的类存在于JDK 1.6 lib文件夹下的rt.jar中。任何想法???

2 个答案:

答案 0 :(得分:2)

嗯......错误是由于使用了一个sun内部类,这在maven编译期间是不可用的。虽然这是一个有趣的场景......

我的项目使用sun的内部JAXB库提供的NamespaceMapper。它在非mavenized eclipse环境中编译(带有警告),因为rt.jar在类路径中。我们开始对这个项目进行整合,突然间我得到了一个ClassNotFound。经过一些谷歌搜索,我遇到了这两个帖子,让我朝着正确的方向前进。

http://forums.java.net/jive/thread.jspa?threadID=24225

http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg1PK88316

BottomLine:不要使用内部库(包名称中包含内部库)。

答案 1 :(得分:1)

尝试将此插件添加到您的pom.xml Maven构建部分:

<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>

更新:这不起作用。

你试过这个吗?

<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>