2016-05-24 1 views
0

Maven, похоже, пытается сериализовать мою конфигурацию в неправильном классе, и я не уверен, является ли ошибка в maven, библиотеке генератора или моей собственной конфигурации.Maven Невозможно разобрать конфигурацию mojo - неправильный класс

Я получил следующий XML фрагмент кода в моей конфигурации плагина: (см documentation, пытаясь обойти this bug)

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

и получить следующее сообщение об ошибке, когда я пытаюсь построить:

[ERROR] Не удалось выполнить цель org.jooq: jooq-codegen-maven: 3.8.1: сгенерировать (по умолчанию) в проекте my-project: невозможно разобрать конфигурацию mojo org.jooq: jooq-codegen-maven: 3.8. 1: генерировать для параметра schemaClass: не удается найти «schemaClass» в классе org.jooq.util.jaxb.Schema -> [Справка 1]

org.jooq.util.jaxb.Schema не имеет свойства schemaClass, но объект внутри matchers -> схемы должны быть типа org.jooq.util.jaxb.MatchersSchemaType в соответствии с schema xsd и генерируемым кодом.

Что здесь происходит? Чья ответственность - десериализировать этот класс правильно - maven, jooq или что-то еще?

+1

Хм, интересно. Я думаю, что ваша конфигурация верна. Это должно быть Maven, делая забавные вещи при десериализации XML. Я исследую эту проблему и даю ответ позже. В качестве обходного пути вы всегда можете использовать внешнюю конфигурацию XML и позволить jQQ's GenerationTool десериализовать это с помощью JAXB, а не через Maven. Один из способов добиться этого - использовать [maven ant plugin] (http://www.jooq.org/doc/latest/manual/code-generation/codegenant) –

ответ

0

Я не могу поверить, что раньше не думал об этом; Я получил его с:

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