当前位置: 首页 > 知识库问答 >
问题:

Jaxb2 maven插件:源代码与SchemaDirectory

陆子石
2023-03-14

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

project.basedir
--src/main/resources/schemas
----common
----request
----response

下面是pom的插件配置。xml

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

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

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]

然而,如果我像下面这样注释源代码并取消注释和修改,那么我就能够在公共模式下从模式中生成java类。

<schemaDirectory>${project.basedir}/src/main/resources/schemas/common</schemaDirectory> 

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

谢谢

共有1个答案

高锦
2023-03-14

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

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

 类似资料:
  • GitCafe GitCafe 是一个由国人建立的类似于 GitHub 的第三方代码托管平台。 绑定 GitCafe 账号与 DaoCloud 账号 若需要将托管在 GitCafe 上的代码库做为 Docker 镜像的构建源,就需要先将 DaoCloud 账号与您的 GitCafe 账号进行绑定。 第一步 在任意页面的右上角点击「账号信息」,并在新的页面中进入「第三方账号」标签页。 第二步 点击

  • Coding Coding 是国内新兴的第三方代码开发、托管和项目管理平台,拥有良好的用户体验和完备的功能。 绑定 Coding 账号与 DaoCloud 账号 如需将托管在 Coding 上的项目代码拉取至 DaoCloud 并作为 Docker 镜像的构建基础,则需要先将您的 Coding 账号与 DaoCloud 账号绑定起来。 第一步 在任意页面的右上角点击「账号信息」,并在新的页面中进入

  • 什么是 Bitbucket Bitbucket 与 GitHub 在代码管理上的功能相似,是 GitHub 以外的又一大第三方代码托管平台之一。 绑定 Bitbucket 账号与 DaoCloud 账号 如果要将托管在 GitHub 上的代码库做为 Docker 镜像的构建源,就需要先将 DaoCloud 账号与您的 Bitbucket 进行绑定。 第一步 在任意页面的右上角点击「账号信息」,并在

  • 什么是 GitHub GitHub 是全球范围内使用最广泛的第三方代码托管平台,它以版本管理软件 Git 作为基础,提供各种方便工程师、设计师、产品经理的功能,许多团队都直接使用 GitHub 作为代码的管理平台。 绑定 GitHub 账号与 DaoCloud 账号 如果要将托管在 GitHub 上的代码库做为 Docker 镜像的构建源,就需要先将 DaoCloud 账户与您的 GitHub 进

  • 我对jaxb2 maven插件版本2.4有以下配置 但是当我运行时,不会生成任何类。 我能忽略什么? 我已经在这里粘贴了一个wsdl 编辑 由于提到这可能是一个可能的重复,我将插件降级为版本并将配置更改为以下,仍然没有生成类。 完整的pom在这里,因为站点抱怨代码太多 清洗后,它最终可与版本一起使用。为什么版本不起作用?

  • 本文向大家介绍BootStrap Tooltip插件源码解析,包括了BootStrap Tooltip插件源码解析的使用技巧和注意事项,需要的朋友参考一下 Tooltip插件可以让你把要显示的内容以弹出框的形式来展示,如: 因为自己在工作的过程中,用到了Tooltip这个插件,并且当时正想学习一下元素定位的问题,如:提示框显示的位置就是触发提示框元素的位置,可以配置在上、下、左、右等位置,所以就去