jaxb2-maven插件

时间:2013-04-02 08:03:57

标签: maven maven-jaxb2-plugin jaxb2-maven-plugin

我想从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>

2 个答案:

答案 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

由于