簡體   English   中英

swagger-codegen-maven-plugin 在生成 API class 時忽略我為 ZonedDateTime 設置的導入映射

[英]swagger-codegen-maven-plugin ignores the importmapping i have set for ZonedDateTime when generating an API class

我正在嘗試從 yaml 文件生成 API class 使用 ZonedDateTime 作為日期的 ZA2F2ED4F8EBC2CBB1DZC21。 當我這樣做時,我可以在配置中成功地將生成的 class 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>

importMappings 和 importMapping 標簽不起作用,你是對的。 但是有一個解決方法;

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

這樣,在生成的源代碼中,即使導入部分包含“import java.time.OffsetDateTime;”,生成的方法參數和變量將被定義為“java.time.ZonedDateTime”,因此您可以在您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM