首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jaxb2 maven插件: Sources vs SchemaDirectory

Jaxb2 maven插件: Sources vs SchemaDirectory
EN

Stack Overflow用户
提问于 2018-03-19 03:37:16
回答 1查看 943关注 0票数 1

我正在制作一个maven项目,它将使用Jaxb2-maven-plugin从xsd文件中生成java文件。我的项目结构如下:

代码语言:javascript
复制
project.basedir
--src/main/resources/schemas
----common
----request
----response

以下是来自pom.xml的插件配置

代码语言:javascript
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>1.6</version>

    <executions>
        <execution>
            <id>xjc-PDF</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>xjc</goal>
            </goals>
            <configuration>
                <extension>true</extension>
                <clearOutputDir>false</clearOutputDir>
                <outputDirectory>${project.build.directory}/generated-sources/jaxb</outputDirectory>
                <explicitAnnotation>true</explicitAnnotation>
                <!-- <schemaDirectory>${project.basedir}/src/main/resources/schemas</schemaDirectory> -->
                <sources>
                    <source>${project.basedir}/src/main/resources/schemas/common</source>
                    <source>${project.basedir}/src/main/resources/schemas/response</source>
                    <source>${project.basedir}/src/main/resources/schemas/request</source>
                </sources>
                <bindingDirectory>${project.basedir}/src/main/resources/schemas</bindingDirectory>
                <!-- <bindingDirectory>${project.basedir}/src/main/resources/bindings</bindingDirectory> -->
                <bindingFiles>jaxb-bth.xjb</bindingFiles>
            </configuration>
        </execution>
    </executions>
</plugin>

如果我这样编译,我会得到下面的错误(即使源目录包含有效的模式文件):

代码语言:javascript
复制
C:\ESB_SOAP5_Space\pdf-util>mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building pdf-util 1.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ pdf-util ---
[INFO] Deleting C:\ESB_SOAP5_Space\pdf-util\target
[INFO]
[INFO] --- build-helper-maven-plugin:1.6:add-source (add-source) @ pdf-util ---
[INFO] Source directory: C:\ESB_SOAP5_Space\pdf-util\target\generated-sources\jaxb added.
[INFO]
[INFO] --- jaxb2-maven-plugin:1.6:xjc (xjc-PDF) @ pdf-util ---
[INFO] Generating source...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.205 s
[INFO] Finished at: 2018-03-19T06:27:02+11:00
[INFO] Final Memory: 8M/245M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:1.6:xjc (xjc-PDF) on project pdf-util: No schemas have been found -> [Help 1]

但是,如果我像下面这样注释源代码并取消注释和修改,那么我就能够从common下的模式生成java类。

代码语言:javascript
复制
<schemaDirectory>${project.basedir}/src/main/resources/schemas/common</schemaDirectory> 

有人能告诉我为什么会这样吗?另外,如果我必须解析一个根文件夹(它有多个子文件夹)下的所有模式文件,我该怎么办?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-14 01:39:58

1.6版本的插件不支持"sources“标签。您可以在2.4版或更高版本上使用"sources“标签。

如果您有多个包含schemaDirectory的目录,请在您的配置中使用多个执行,每个xsd指向您的一个目录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49352098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档