代码之家  ›  专栏  ›  技术社区  ›  RotS

使用Jsonix将JSON模式生成为多个文件

  •  0
  • RotS  · 技术社区  · 5 年前

    我有几个XSD文件,由请求和主题分隔,但是作为输出的JSON模式是一个包含数千行的大文件。我想知道是否有设置可以使用Jsonix将生成的JSON模式输出为多个文件。在里面会更容易导航。

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

        <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>
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   lexicore    5 年前

    作者 Jsonix

    modules and mappings .

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

    configure 生成包含特定映射的模块的编译器。

    下面是我的处理方法。

    我不得不说,在这种情况下我还没有真正尝试过。通常人们会做相反的事情-在一个模块中组合几个映射。但我觉得这没什么不起作用的。

    示例配置可能类似于:

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

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

    推荐文章