通过运行Java API文档中建议的"schenagen"生成模式的指令适用于JDK7,但不适用于JDK8.
这是文档页面:http: //download.java.net/jdk8/docs/technotes/guides/xml/jaxb/index.html
以下是此页面中的行以及指示的链接:
"运行模式生成器(schemagen):[命令行指令,使用SchemaGen Ant任务] "
由于某些类已从JDK8中删除,因此模式生成器不起作用:"java.lang.ClassNotFoundException:com.sun.mirror.apt.AnnotationProcessorFactory"
这里有另一个解决方案: 在Maven中从JAXB类型生成XSD架构?
此解决方案也适用于JDK7,但不适用于JDK8; 它最终会出现类似的错误:
"Class not foundcom/sun/tools/apt/Main.class"
根本原因可能是相同的:注释处理工具从JDK8中删除.这一变化计划在很久以前的JEP 117中进行:http: //openjdk.java.net/jeps/117
如何使用JDK8从(JAXB)带注释的Java类生成XML模式文件?
小智 8
这是"jaxb2-maven-plugin"中的一个错误.您必须使用插件的1.6或更高版本
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<goals>
<goal>schemagen</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<includes>
<include>com/projectname/model/*.java</include>
</includes>
<outputDirectory>${project.build.directory}/schemas</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
您可以使用generateSchemaon 方法JAXBContext生成 XML 模式:
| 归档时间: |
|
| 查看次数: |
3372 次 |
| 最近记录: |