首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jsonix将Jsonix作为几个文件生成

使用Jsonix将Jsonix作为几个文件生成
EN

Stack Overflow用户
提问于 2019-09-03 16:15:19
回答 1查看 344关注 0票数 0

我有几个XSD文件,由请求和主题分隔,但是作为输出的JSON模式是一个包含数千行的大文件。我想知道是否存在使用Jsonix将生成的JSON输出为多个文件的设置。这样就更容易进入了。

下面是我的pom.xml的Jsonix部分:

代码语言:javascript
复制
    <plugin>
        <groupId>org.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.13.3</version>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>

                    <extension>true</extension>
                    <args>
                        <arg>-Xannotate</arg>
                        <arg>-Xjsonix</arg>
                        <arg>-Xjsonix-generateJsonSchema</arg>  
                    </args>
                    <plugins>
                        <plugin>
                            <groupId>org.hisrc.jsonix</groupId>
                            <artifactId>jsonix-schema-compiler</artifactId>
                            <version>2.3.10</version>
                        </plugin>

                        <plugin>
                            <groupId>org.jvnet.jaxb2_commons</groupId>
                            <artifactId>jaxb2-basics-annotate</artifactId>
                            <version>1.0.2</version>
                        </plugin>
                        <plugin>
                            <groupId>org.jvnet.jaxb2_commons</groupId>
                            <artifactId>jaxb2-annotate-plugin-test-annox-annotations</artifactId>
                            <version>1.0.0</version>
                        </plugin>
                        <plugin>
                            <groupId>io.swagger</groupId>
                            <artifactId>swagger-annotations</artifactId>
                            <version>1.5.10</version>
                        </plugin>
                    </plugins>


                    <schemaDirectory>src/main/resources</schemaDirectory>
                    <schemaIncludes>
                        <include>**/*.xsd</include>
                    </schemaIncludes>

                    <bindingDirectory>src/main/resources</bindingDirectory>
                    <bindingIncludes>
                        <include>**/*.xjb</include>
                    </bindingIncludes>

                    <generatePackage>com.my.awesome.package</generatePackage>
                    <generateDirectory>${project.build.directory}/generated-sources/jsonSchema</generateDirectory>

                    <verbose>true</verbose>

                </configuration>
            </execution>
        </executions>
    </plugin>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-04 07:58:03

Jsonix的作者。

我想知道是否存在使用Jsonix将生成的JSON输出为多个文件的设置。

是的,请读关于模与映射的文章。

简而言之,映射或多或少对应于Java中的一个包。一个模块是一个或多个映射的集合,也是一个生成单元。

您可以通过配置编译器生成包含特定映射的模块。

如果我正确理解您的情况,您将有一个大型模式,并且希望将映射或JSON模式划分为几个文件。

我就是这样接近它的。

  • 为架构配置若干映射。您可以精确地指定哪种类型、元素等在哪种映射中。有关此问题,请参见包括配置。确保为您的映射提供唯一的名称。
  • Condigure 几个模块,每个映射都包含一个映射子集。

我不得不说,在这种情况下,我还没有真正尝试过。通常,人们会做相反的事情--在一个模块中将多个映射分组。但我看不出有什么不管用的理由。

一个示例配置看起来可能如下所示:

代码语言:javascript
复制
<jsonix:module
  name="MyRequests">
  <jsonix:mapping package="com.my.awesome.package" name="MyRequests">
    <jsonix:includes>
      <jsonix:type name="MyRequestType"/>
      ...
    </jsonix:includes>
  <jsonix:mapping>
</jsonix:module>
<jsonix:module
  name="MyResponses">
  <jsonix:mapping package="com.my.awesome.package" name="MyResponses">
    <jsonix:includes>
      <jsonix:type name="MyResponseType"/>
      ...
    </jsonix:includes>
  <jsonix:mapping>
</jsonix:module>

我不能百分之百肯定这会起作用,但这是一个很好的起点。

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

https://stackoverflow.com/questions/57775389

复制
相关文章

相似问题

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