2017-10-04 2 views
0

Ich versuche, das jsonschema2pojo Plugin für die Generierung von POJOs basierend auf Schema und JSON sourceTypes zu verwenden. Die Konfigurationen werden pro Ausführung angegeben. Aber jedes Mal, wenn das Plugin meldet, muss "Eines von sourceDirectory oder sourcePaths bereitgestellt werden". Ich kann es ausführen, wenn die Konfiguration auf der Ebene des Plugins (global) bereitgestellt wird. Aber dann kann ich nur einen sourceType angeben.jsonschema2pojo maven Plugin-Konfiguration in der Ausführung nicht berücksichtigt

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

Gibt es eine Möglichkeit, das Plug-in die Konfiguration auf Ausführungsebene pro Ziel verwenden zu lassen?

Plugin-Version: 0.5.1

Antwort

0

Versuchen Sie Ihre Konfiguration, um das Plug-Ebene zu bewegen und mit den übergeordneten Ordner ($ {baseDir}/src/main/resources) als Quellverzeichnis.

Hier ist ein alter Bug-Report, die gleiche Sache zu beschreiben: https://github.com/joelittlejohn/jsonschema2pojo/issues/145

+0

Danke für den Tipp. Das kümmert sich nur um die Paketerstellung für die Unterordner. Ich wollte zwei verschiedene Ordner haben, die als jsonschema bzw. json behandelt wurden. – Sandheep

0

tl; dr

Wenn die läuft 'kompilieren' von Maven Projekten Lebenszyklus, das Plugin die Konfiguration von der Ausführung erwägt und funktioniert wie erwartet.


Ich benutze IntelliJ und versuchte, die pojo von Plugins zu generieren -> jsonschema2pojo -> jsonschema2pojo: erzeugen unter 'Maven Projekte' Fenster. Dies ergab den obigen Fehler und nahm nicht die Konfiguration pro Ausführung.

Wenn ich kompilieren aus dem Maven Lifecycle, wählt es die Konfiguration in der Ausführung und generiert die Dateien wie angegeben.

Ich bin mir noch nicht sicher, ob dies ein Problem mit dem Plugin oder Maven ist oder ob es überhaupt ein Problem ist !!

Verwandte Themen