执行中未考虑jsonschema2pojo maven插件配置

时间:2017-10-04 11:44:16

标签: java maven intellij-idea jsonschema2pojo

我正在尝试使用jsonschema2pojo插件基于schema和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

2 个答案:

答案 0 :(得分:1)

tl; dr

从Maven项目生命周期运行&#39;编译时,插件正在考虑执行配置并按预期工作。

我正在使用Intellij并尝试从插件中生成pojo - &gt; jsonschema2pojo - &gt; jsonschema2pojo:生成Maven项目&#39;窗口。这是出现上述错误,并未执行每次执行的配置。

当我从Maven Lifecycle运行编译时,它正在执行中选择配置并按指定生成文件。

我还不确定这是插件或专家的问题,还是一个问题!

答案 1 :(得分:0)

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

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