-1

我想从 xsd 文件生成 java 类,所以当我运行代码时它会显示错误

没有找到架构...这是代码...请帮助...

<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>
4

2 回答 2

0

我认为尝试省略该参数<includeSchema>**/*.xsd</includeSchema>的语法无效。jaxb2-maven-plugin:xjc

如果您不指定 schemaFiles,它应该使用 schemaDirectory 中的所有 XSD 文件。

“schemaFiles -- 用于模式的文件列表,以逗号分隔。如果没有,则在 schemaDirectory 中使用所有 xsd 文件。此参数还接受 Ant 样式的文件模式。” (参见jaxb2-maven-plugin 文档

顺便说一句,使用 maven 的配置参数来引用目录通常是个好主意。例如,更改<schemaDirectory>src/main/resources/xsd</schemaDirectory><schemaDirectory>${project.basedir}/src/main/resources/xsd</schemaDirectory>.

最后,您可能还想参考这个类似的 SO 帖子

于 2013-07-16T19:22:54.787 回答
0

我也在使用 maven 配置,几乎花在编译项目的东西上。后来我才知道它在寻找模式文件,即 schema.xsd。

如果您使用的是 MAVEN 配置,那么默认情况下您可以将架构文件放在资源目录下。

但是,如果您想指定查找模式文件的路径,则可以在插件配置中使用schemaDescription的includeSchema标记。

                                OR

您也可以使用有效的 pom 来搜索特定的标签。

maven中有效pom的命令:mvn help:effective-pom

谢谢

于 2016-02-09T14:32:04.917 回答