3

我正在尝试使用 jsonschema2pojo 插件来生成基于模式和 json sourceTypes 的 POJO。每次执行都会指定配置。但是每次插件报告“必须提供 sourceDirectory 或 sourcePaths 之一”时。当在插件级别(全局)提供配置时,我可以运行它。但是我只能指定一个 sourceType。

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.jsonschema2pojo</groupId>
                <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                <version>0.5.1</version>
                <executions>
                    <execution>
                        <id>generate-schema</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
                            <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
                            <annotationStyle>jackson2</annotationStyle>
                            <generateBuilders>false</generateBuilders>
                            <initializeCollections>true</initializeCollections>
                            <refFragmentPathDelimiters>#/</refFragmentPathDelimiters>
                            <sourceType>jsonschema</sourceType>
                            <targetPackage>com.company.app.integration.sabre.stub.rest</targetPackage>
                            <sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>generate-json</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <outputEncoding>${project.build.sourceEncoding}</outputEncoding>
                            <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
                            <annotationStyle>jackson2</annotationStyle>
                            <generateBuilders>false</generateBuilders>
                            <initializeCollections>true</initializeCollections>
                            <refFragmentPathDelimiters>#/</refFragmentPathDelimiters>
                            <sourceType>json</sourceType>
                            <targetPackage>com.company.app.integration.sabre.stub.rest</targetPackage>
                            <sourceDirectory>${basedir}/src/main/resources/json</sourceDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

有没有办法让插件在每个目标的执行级别使用配置?

插件版本:0.5.1

4

2 回答 2

2

tl;博士

从 Maven 项目生命周期运行“编译”时,插件正在考虑从执行开始的配置并按预期工作。


我正在使用 Intellij 并试图从 Plugins -> jsonschema2pojo -> jsonschema2pojo:generate 在“Maven Projects”窗口下生成 pojo。这给出了上述错误,并且没有在每次执行时进行配置。

当我从 Maven 生命周期运行编译时,它会在执行中选择配置并生成指定的文件。

我还不确定这是否是插件或 Maven 的问题,或者根本不是问题!

于 2017-10-05T04:53:15.853 回答
0

尝试将您的配置移到插件级别并使用父文件夹 (${baseDir}/src/main/resources) 作为 sourceDirectory。

这是描述同一件事的旧错误报告: https ://github.com/joelittlejohn/jsonschema2pojo/issues/145

于 2017-10-04T12:23:21.833 回答