2016-05-24 13 views
0

Maven scheint zu versuchen, meine Konfiguration in die falsche Klasse zu serialisieren, und ich bin mir nicht sicher, ob der Fehler in Maven, der Generatorbibliothek oder meiner eigenen Konfiguration liegt.Maven Kann die Konfiguration von mojo nicht parsen - falsche Klasse

Ich habe die folgende XML-Code-Schnipsel in meinem Plugin-Konfiguration erhalten wurde: (siehe documentation und versuchte, um this bug zu arbeiten)

<generator> 
    <strategy> 
     <matchers> 
      <schemas> 
       <schema> 
        <schemaClass> 
         <transform>PASCAL</transform> 
         <expression>SCHEMA_$0</expression> 
        </schemaClass> 
        <schemaIdentifier> 
         <transform>PASCAL</transform> 
         <expression>SCHEMA_$0</expression> 
        </schemaIdentifier> 
       </schema> 
      </schemas> 
     </matchers> 
    </strategy> 
</generator> 

und erhalten die folgende Fehlermeldung, wenn ich zu bauen versuchen:

[FEHLER] Fehler beim Ausführen des Ziels org.jooq: jooq-codegen-maven: 3.8.1: Generieren (Standard) für das Projekt my-project: Die Konfiguration von mojo org.jooq kann nicht analysiert werden: jooq-codegen-maven: 3.8. 1: generiere für den Parameter schemaClass: 'schemaClass' konnte in der Klasse org.jooq.util.jaxb.Schema -> [Hilfe nicht gefunden werden 1]

org.jooq.util.jaxb.Schema hat keine schemaClass Eigenschaft, aber das Objekt innerhalb Matcher -> Schemata sollten org.jooq.util.jaxb.MatchersSchemaType nach den schema xsd und der generierten Code-Typ sein.

Was geht hier vor? Wessen Aufgabe ist es, diese Klasse richtig zu deserialisieren - Maven, Jooq oder etwas anderes?

+1

Hmm, interessant. Ich denke deine Konfiguration ist korrekt. Das muss Maven sein, der beim Deserialisieren des XML lustige Dinge tut. Ich werde dieses Problem untersuchen und später eine Antwort geben. Als Workaround können Sie immer eine externe XML-Konfiguration verwenden und dies von jOOQ's GenerationTool mit JAXB und nicht über Maven deserialisieren lassen. Eine Möglichkeit, dies zu erreichen, ist die Verwendung des [maven ant plugin] (http://www.jooq.org/doc/latest/manual/code-generation/codegen-ant). –

Antwort

0

Ich kann nicht glauben, dass ich nicht früher darüber nachdachte; Ich habe es funktioniert mit:

<generator> 
    <strategy> 
     <matchers> 
      <schemas> 
       <matchersSchemaType> 
        <schemaClass> 
         <transform>PASCAL</transform> 
         <expression>SCHEMA_$0</expression> 
        </schemaClass> 
        <schemaIdentifier> 
         <transform>PASCAL</transform> 
         <expression>SCHEMA_$0</expression> 
        </schemaIdentifier> 
       </matchersSchemaType> 
      </schemas> 
     </matchers> 
    </strategy> 
</generator>