4

我正在尝试使用 ZonedDateTime 作为日期类从 yaml 文件生成 API 类。当我这样做时,我可以在配置中成功地将生成的类 OffsetDateTime 更改为 ZonedDateTime,但是没有生成正确的导入语句,这会导致错误。它只进口import java.time.OffsetDateTime;. 有人知道我可以尝试什么,以便生成正确的导入吗?

这是我在 pom 中配置它的最新尝试,我正在使用来自 io.swagger.codegen.v3 的 swagger-codegen-maven-plugin,版本 3.0.20。

<configuration>
    <additionalProperties>
        <additionalProperty>ignoreImportMappings=false</additionalProperty>
    </additionalProperties>
    <generateSupportingFiles>false</generateSupportingFiles>                 
    <inputSpec>${project.basedir}/src/main/resources/api/api.yaml</inputSpec>
    <modelPackage>api.domene</modelPackage>
    <language>spring</language>
    <generateModels>true</generateModels>
    <generateApis>true</generateApis>
    <generateApiTests>false</generateApiTests>
    <configOptions>
        <library>spring-boot</library>
        <interfaceOnly>true</interfaceOnly>
        <hideGenerationTimestamp>true</hideGenerationTimestamp>
        <useTags>true</useTags>
        <java8>true</java8>
        <serializableModel>true</serializableModel>
        <dateLibrary>java8</dateLibrary>
    </configOptions>
    <typeMappings>OffsetDateTime=ZonedDateTime</typeMappings>
    <importMappings>                             
         <importMapping>java.time.OffsetDateTime=java.time.ZonedDateTime</importMapping>
    </importMappings>
</configuration>
4

1 回答 1

0

importMappings 和 importMapping 标签不起作用,你是对的。但是有一个解决方法;

...
    </configOptions>
    <typeMappings>
        <typeMapping>OffsetDateTime=java.time.ZonedDateTime</typeMapping>
    </typeMappings>
</configuration>

这样,在生成的源中,即使导入部分包含“import java.time.OffsetDateTime;”,生成的方法参数和变量也将定义为“java.time.ZonedDateTime”,因此您可以在您的代码。

于 2021-09-16T05:34:33.823 回答