我们的一个类使用jdk 1.6捆绑的jaxb api。当我尝试使用maven编译这个(JAVA_HOME设置为JDK 1.6,并且它在IDE中显示Maven使用JDK 1.6运行时),我得到了jaxb库的类未找到错误。有问题的类出现在JDK 1.6 lib文件夹下的rt.jar中。有任何想法吗???Maven没有拿起JDK 1.6捆绑的库
回答
那么......错误是由于在maven编译期间太阳的内部类之一的使用。它是一个有趣的场景,虽然...
我的项目使用由sun的内部JAXB库提供的NamespaceMapper。它在一个非maven化的eclipse环境中编译(带有警告),因为rt.jar在类路径中。我们开始对这个项目进行初始化,并且突然之间我得到了一个ClassNotFound。经过一些Google搜索后,我发现这两个帖子让我朝着正确的方向前进。
http://forums.java.net/jive/thread.jspa?threadID=24225
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg1PK88316
底线:不要使用内部库(软件包名称中都有内部)。
尝试增加这个插件你的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>
不...这不工作.... – Manoj 2010-06-25 08:47:48
试试我的第二个解决方案。对不起,但我现在不能再现你的问题:-) – sourcerebels 2010-06-25 10:21:45
嗨SourceRebels,谢谢你的帖子。正如我的答案中指出的那样,使用内部类(com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper)不是一种好的做法,因此不是按照原样工作,而是删除了对内部jaxb实现的依赖关系,将我的代码更改为从jaxb ri导入。这解决了我的问题。 – Manoj 2010-06-25 13:20:39
- 1. Intellij拿起JDK 1.6而不是1.8
- 2. Maven 1.0.2和JDK 1.6问题
- 3. maven ear插件没有拿起application.xml
- 4. XCode 4.4捆绑版本更新没有拿起,直到后来生成
- 5. $ uid没有拿起价值
- 6. JKMount没有拿起.htacess
- 7. Android没有拿起jQuery Mobile
- 8. Java没有拿起按键?
- 9. Jinja2没有拿起CSS,
- 10. MyEclipse没有拿起PhoneGap?
- 11. Android Studio没有拿起minSdkVersion
- 12. JDK 1.6与JDK 1.5兼容?
- 13. JDK 1.6 GC AdaptiveSizeThroughPutPolicy
- 14. JDK 1.6和Xerces?
- 15. Maven耳朵插件没有拿起ibm-application-bnd.xmi
- 16. Android Studio中捆绑错误JDK
- 17. MultiBinding没有拿起第二个属性
- 18. 捆绑-ManifestVersion = 2对比捆绑-ManifestVersion = 1
- 19. 没有拿起php的javascript值
- 20. jdk 1.6和jdk 1.7之间的区别?
- 21. 捆扎机命令捆绑安装--deployment没有捆绑所有宝石
- 22. cmake似乎没有拿起我的-DCMAKE_CXX_FLAGS
- 23. Ohai没有拿起正确的ipaddress
- 24. Fedora上的Android:PATH没有拿起?
- 25. Ubuntu的似乎并没有拿起.bash_profile
- 26. SQL没有拿起第二行的ID
- 27. tcpdf没有拿起div的边框
- 28. IE8没有拿起我的@ font-face
- 29. CDH5中的Oozie没有拿起mapreduce.job.counters.max
- 30. 捆绑ID没有显示在iTunesconnect捆绑ID
具体是什么例外? – skaffman 2010-06-24 15:45:07