XJC(
XML
Java编译器)是JAXB(
Java XML Bindings)的一部分.
如果我看一下official website,最新版本的JAXB似乎是2.2.11.这是你刚刚安装最新的JDK版本8u40时得到的那个.
以下输出显示了与JDK 8u40相关的XJC版本:
../JDK8u40/bin$./javac -version
javac 1.8.0_40
../JDK8u40/bin$./xjc -version
xjc 2.2.8-b130911.1802
(原始JDK路径因操作系统而异,因此这只是一个示例性表示.)
似乎XJC的版本与“最新的”JAXB版本不同,或者最新的JDK不包含最新的JAXB版本.
我的解决方法是从Maven repository安装最新的JAXB版本.听起来很简单,但为什么最新版本的JAXB现在是2.2.12?忘了把文件放在官方网站上?好吧,我只是试着不在乎……在成功安装过程之后,我注意到这个包里面没有XJC.所以继续搜索……我找到了另一个名为“JAXB-XJC”的Maven存储库.但这只是源代码.我只是想安装最新的XJC二进制文件.我查看了版本号,即2.2.11.这看起来至少比2.2.8更好.
但是我可以在哪里获得XJC的最新二进制文件?
为什么我要安装最新的XJC二进制文件?因为我想知道它是否支持Java 8的Optionals和/或它是否支持XSD架构版本1.1.在互联网上的某个地方,我读到最新的XJC至少支持XSD架构版本1.1.那就足够了.但要弄清楚这一点,似乎甲骨文必须解决他们可怕的版本混乱.
更新
我试图通过克隆官方Git repository并进行mvn clean install来构建JAXB.
结果:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] JAXB BOM ........................................... SUCCESS [ 0.140 s]
[INFO] JAXB BOM with ALL dependencies ..................... SUCCESS [ 0.005 s]
[INFO] JAXB Reference Implementation ...................... SUCCESS [ 0.515 s]
[INFO] JAXB External parent ............................... SUCCESS [ 0.009 s]
[INFO] RNGOM .............................................. SUCCESS [ 3.723 s]
[INFO] Codemodel .......................................... SUCCESS [ 0.008 s]
[INFO] Codemodel Core ..................................... SUCCESS [ 2.622 s]
[INFO] Codemodel Annotation Compiler ...................... SUCCESS [ 0.848 s]
[INFO] JAXB TXW parent .................................... SUCCESS [ 0.006 s]
[INFO] TXW2 Runtime ....................................... SUCCESS [ 1.920 s]
[INFO] TXW2 Compiler ...................................... SUCCESS [ 1.507 s]
[INFO] JAXB Core .......................................... SUCCESS [ 1.745 s]
[INFO] JAXB Runtime parent ................................ SUCCESS [ 0.008 s]
[INFO] JAXB Runtime ....................................... SUCCESS [ 5.932 s]
[INFO] JAXB1 Runtime ...................................... SUCCESS [ 1.520 s]
[INFO] JAXB XJC ........................................... SUCCESS [ 5.555 s]
[INFO] JAXB JXC ........................................... SUCCESS [ 2.928 s]
[INFO] Parent for osgi testing modules. ................... SUCCESS [ 0.009 s]
[INFO] osgi-test-parent ................................... SUCCESS [ 1.315 s]
[INFO] osgi-test-core ..................................... SUCCESS [ 0.676 s]
[INFO] JAXB bundles ....................................... SUCCESS [ 0.007 s]
[INFO] Old JAXB Core ...................................... SUCCESS [ 4.669 s]
[INFO] osgi-test-runtime .................................. SUCCESS [ 0.677 s]
[INFO] Old JAXB Runtime ................................... SUCCESS [ 3.251 s]
[INFO] osgi-test-xjc ...................................... SUCCESS [ 0.637 s]
[INFO] Old JAXB XJC ....................................... SUCCESS [ 4.385 s]
[INFO] osgi-test-jxc ...................................... SUCCESS [ 0.607 s]
[INFO] Old JAXB JXC ....................................... SUCCESS [ 2.169 s]
[INFO] JAXB Documentation parent .......................... SUCCESS [ 0.005 s]
[INFO] JAXB Release Documentation ......................... SUCCESS [ 12.401 s]
[INFO] JAXB samples ....................................... SUCCESS [ 0.375 s]
[INFO] JAXB RI ............................................ SUCCESS [ 1.079 s]
[INFO] JAXB OSGI parent ................................... SUCCESS [ 0.005 s]
[INFO] JAXB extra OSGI .................................... FAILURE [ 6.668 s]
[INFO] JAXB OSGI .......................................... SKIPPED
[INFO] osgi-test-osgi ..................................... SKIPPED
[INFO] osgi-test-extra_osgi ............................... SKIPPED
[INFO] JAXB OSGi Tests .................................... SKIPPED
[INFO] JAXB WWW Help files ................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:08 min
[INFO] Finished at: 2015-03-11T15:40:59+01:00
[INFO] Final Memory: 83M/1546M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.0:shade (default) on project jaxb-extra-osgi: Error creating shaded jar: java.util.jar.Attributes cannot be cast to java.lang.String -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :jaxb-extra-osgi
构建过程总是在JAXB额外的OSGI目标上失败. JAXB XJC目标构建成功,但仅包含抛出jar文件但没有名为xjc的二进制文件的异常.那它在哪里?