Мы используем jsonschema2pojo-maven-plugin для генерации pojos java из файла схемы json. Плагин генерирует pojos для определений, которые ссылаются на схему, но не для всех определений.
Есть ли возможность заставить плагин генерировать pojos для всех определений в schmea?
Ниже приведены используемые конфигурации pom-плагина и определения схемы, здесь плагин
- генерирует POJO только для продукта определение
- не генерирует POJO для продукта подкласса определения (" proprietaryProduct " & " thirdPartyProduct")
это проблема, нам также нужно создать pojos для этих определений подкласса
Конфигурация плагина Maven:
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-models</id>
<configuration>
<targetPackage>com.xyz.abc</targetPackage>
<useCommonsLang3>true</useCommonsLang3>
</configuration>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Json Схема:
{
"$schema":"http://json-schema.org/draft-04/schema",
"definitions":{
"product":{
"type":"object",
"properties":{
"type":{
"enum":[
"THIRD_PARTY",
"PROPRIETARY"
],
"type":"string"
},
"price":{
"type":"string"
}
},
"additionalProperties": false
},
"proprietaryProduct": {
"type": "object",
"properties": {
"batchName": {
"type": "string"
}
},
"extends": "#/definitions/product"
},
"thirdPartyProduct": {
"type": "object",
"properties": {
"thirdPartyName": {
"type": "string"
}
},
"extends": "#/definitions/product"
}
},
"type":"object",
"properties":{
"product":{
"type":"object",
"$ref":"#/definitions/product"
}
},
"additionalProperties":false
}