我想从xsd文件生成java类bt soome如何运行代码时显示错误
找不到架构......这是代码......请帮助......
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>src/main/resources/xsd</schemaDirectory>
<includeSchema>**/*.xsd</includeSchema>
<!-- <generatepackage>org.onesync.esb.datasync.model</generatepackage> -->
<!-- The package in which the source files will be generated. -->
<packageName>org.onesync.esb.datasync.model</packageName>
<!-- The working directory to create the generated java source files. -->
<outputDirectory>src/main/java/org/onesync/esb/datasync/model</outputDirectory>
</configuration>
</plugin>
</plugins>
答案 0 :(得分:0)
我认为<includeSchema>**/*.xsd</includeSchema>
不是jaxb2-maven-plugin:xjc
的有效语法,请尝试省略该参数。
如果未指定schemaFiles,则应使用schemaDirectory中的所有XSD文件。
“schemaFiles - 用于模式的文件列表,逗号分隔。如果没有,则在schemaDirectory中使用所有xsd文件。此参数也接受Ant样式的文件模式。”(见jaxb2-maven-plugin documentation)
顺便说一句,使用maven的配置参数来引用目录通常是个好主意。例如,将<schemaDirectory>src/main/resources/xsd</schemaDirectory>
更改为<schemaDirectory>${project.basedir}/src/main/resources/xsd</schemaDirectory>
。
最后,您可能还想引用this similar SO post。
答案 1 :(得分:0)
我也在使用maven配置并花了差不多来编译项目的东西。后来我才知道它正在寻找模式文件,即schema.xsd。
如果您使用MAVEN配置,则默认情况下您可以将架构文件放在资源目录下。
但是,如果您要指定查找架构文件的路径,则可以在插件配置中使用 schemaDescription 的 includeSchema 标记。
OR
您也可以使用效率pom搜索特定标签。
maven中有效pom的命令:mvn help:effective-pom
由于