我在导入用于Java和Kotlin的openapi-generator的生成代码时遇到问题。
假设我有一个root.yaml / child1.yaml / child2.yaml,其内容如下:
components:
schemas:
Transfer:
type: object
allOf:
- $ref: "child1.yaml#/components/schemas/Pet1"
- $ref: "child2.yaml#/components/schemas/Pet2"
child1.yaml:
components:
schemas:
Pet1:
type: object
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
child2.yaml:
components:
schemas:
Pet2:
type: object
required:
- id2
- name2
properties:
id2:
type: integer
format: int64
name2:
type: string
tag2:
type: string
在这种情况下,我不在乎child1 / child2中的实体,我只希望构建Transfer-object,所以我仅用Transfer填充了modelsToGenerate-settings。我的问题是,即使不需要,生成的Transfer类也始终包含子项的导入。例如:
import com.model.Pet1
import com.model.Pet2
data class Transfer (
val id: kotlin.Long,
val name: kotlin.String,
val id2: kotlin.Long,
val name2: kotlin.String,
val tag: kotlin.String? = null,
val tag2: kotlin.String? = null
)
生成的类不依赖于子级,但是始终生成导入。有没有我错过的设置或解决方法?生成Pet1和Pet2时,也会出现不必要的导入,但是Transfer仍然不依赖于子项。 我的用例是,我在规范中确实有一些非常大的模型,并且我希望将它们拆分为多个文件,以减少混乱/重复,而无需为每个孩子创建一个公共类。
谢谢。
答案 0 :(得分:0)
自己找到答案。生成类后,必须运行Google Java格式化程序之类的格式化程序。