【问题标题】:HOw to use jsonschema2pojo in maven's POM如何在 maven 的 POM 中使用 jsonschema2pojo
【发布时间】:2016-05-26 13:29:57
【问题描述】:

我有一个 JSON 文件,我想将它转换为 POJO,为此我在 maven 中使用 org.jsonschema2pojo 的插件。我无法生成结果 pojo。这是 pom.xml 中的 sn-p

<build>
                <plugins>
                    <plugin>


                        <groupId>org.jsonschema2pojo</groupId>
                        <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                        <version>0.4.23</version>
                        <configuration>
                            <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
                            <targetPackage>${basedir}/src/main/resources/result</targetPackage>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

我在 maven 中使用生成源目标。我的期望是它应该在 ${basedir}/src/main/resources/result 位置给我 pojo 文件。但是我越来越多了。请帮帮我。 谢谢, 拉吉特

【问题讨论】:

    标签: java maven-plugin pojo


    【解决方案1】:

    您想使用&lt;outputDirectory&gt; 而不是&lt;targetPackage&gt;。更多细节在这里:

    目标包是您希望类型使用的 Java 包,例如com.youcompany.model.

    此外,通常您希望生成的输出进入target 目录,而不是src。派生文件通常会放在那里,因为target 中的任何内容通常都会从源代码控制中省略。如果您不想指定outputDirectory,则无需指定,默认情况下生成的输出将进入/target/java-gen

    【讨论】:

    • 感谢您的回复。我已经删除了“${basedir}/src/main/resources/result”这一行,但目标文件夹中仍然没有生成文件。现在我的配置文件是 ${basedir}/src/main/resources/schema/jsonSample.json 注意:我使用 maven 的 generate-sources 阶段来构建。我的目标文件夹现在只包含 maven-status 文件夹。请提出建议。
    • 如何使用maven从生成的pojo .class文件中获取jar文件?
    • @Pradeep_Evol mvn 包
    • 如果您是从 JSON(不是从 JSON 模式)生成代码,请在 jsonschema2pojo 插件配置中使用 json
    【解决方案2】:

    下面的代码对我有用。

    <plugin>
        <groupId>org.jsonschema2pojo</groupId>
        <artifactId>jsonschema2pojo-maven-plugin</artifactId>
        <executions>
            <execution>
                <id>1</id>
                <configuration>
                    <annotationStyle>jackson2</annotationStyle>
                    <includeAdditionalProperties>false</includeAdditionalProperties>
                    <sourcePaths>
                        <sourcePath>${project.basedir}/src/main/resource/jsd/your_schema.json</sourcePath>
                    </sourcePaths>
                    <targetPackage>your target package</targetPackage>
                </configuration>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
            <execution>
                <id>2</id>
                <configuration>
                    <annotationStyle>jackson2</annotationStyle>
                    <includeAdditionalProperties>false</includeAdditionalProperties>
                    <sourcePaths>
                        <sourcePath>${project.basedir}/src/main/resource/jsd/your_schema2.json</sourcePath>
                    </sourcePaths>
                    <targetPackage>your target package</targetPackage>
                </configuration>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    【讨论】:

      【解决方案3】:

      同时使用 targetPackage 和 outputDirectory。

            <plugin>
              <groupId>org.jsonschema2pojo</groupId>
              <artifactId>jsonschema2pojo-maven-plugin</artifactId>
              <version>1.0.2</version>
              <configuration>
                <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
                <outputDirectory>src/main/java</outputDirectory>
                <targetPackage>com.your.package</targetPackage>
              </configuration>
              <executions>
                <execution>
                  <goals>
                    <goal>generate</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
      

      【讨论】:

        猜你喜欢
        • 2018-08-17
        • 2013-05-29
        • 1970-01-01
        • 1970-01-01
        • 2011-02-16
        • 2016-01-29
        • 1970-01-01
        • 1970-01-01
        • 2011-10-10
        相关资源
        最近更新 更多