我们的一个类使用 jdk 1.6 的捆绑 jaxb api。当我尝试使用 maven 编译它时(JAVA_HOME 设置为 JDK 1.6,它在 IDE 中显示 maven 使用 JDK 1.6 运行)我收到 jaxb 库的类未找到错误。有问题的类存在于 JDK 1.6 lib 文件夹下的 rt.jar 中。有任何想法吗???
问问题
5094 次
2 回答
2
嗯...错误是由于使用了在 maven 编译期间不可用的 sun 内部类之一。虽然这是一个有趣的场景......
我的项目使用了 sun 内部 JAXB 库提供的 NamespaceMapper。它在非 mavenized eclipse 环境中编译(带有警告),因为 rt.jar 在类路径中。我们开始 mavenize 这个项目,突然间我得到了一个 ClassNotFound 。经过一番谷歌搜索后,我发现了这两个帖子,这让我朝着正确的方向前进。
http://forums.java.net/jive/thread.jspa?threadID=24225
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg1PK88316
BottomLine :不要使用内部库(包名中有内部库)。
于 2010-06-25T09:56:50.540 回答
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>
于 2010-06-24T15:17:57.917 回答