当前位置: 首页 > 知识库问答 >
问题:

openapi生成器maven插件在没有正确导入的情况下生成BigDecimal属性

鲜于光赫
2023-03-14

我目前正在使用openapi生成器maven插件生成一个模型,但当该模型创建BigDecimal属性时,它没有添加正确的导入。例如:

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import java.io.File;
import java.time.OffsetDateTime;
import java.time.LocalDate;
import java.util.function.Supplier;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import lombok.Builder;
import lombok.Data;
//Missing import java.math.BigDecimal;

@Data
public class Response  {
    /**
     * No description provided
     */
    @JsonProperty("value")
    private Optional<BigDecimal> maybeValue;
}   

当我手动添加导入时,模型编译成功,但我认为它会生成。

我尝试在配置部分添加导入映射,如下所示:

<importMappings>BigDecimal=java.math.BigDecimal</importMappings>

正如这里所建议的那样。

还尝试了以下方法:

<importMappings>               
    <importMapping>BigDecimal=java.math.BigDecimal</importMapping>
</importMappings>

但行为是一样的。

我正在使用openapi生成器版本5.0.0。我目前的配置是这样的:

<configuration>
  <inputSpec>${project.basedir}/src/main/resources/swagger/swagger.json</inputSpec>
  <generatorName>com.test.CustomJavaGenerator</generatorName>
  <output>generated-sources</output>
  <addCompileSourceRoot>true</addCompileSourceRoot>
  <templateResourcePath>test/java/myTemplate</templateResourcePath>
  <apiPackage>com.test.api.v1</apiPackage>
  <modelPackage>com.test.model.v1</modelPackage>
  <generateSupportingFiles>true</generateSupportingFiles>
  <generateModels>false</generateModels>
  <generateModelTests>false</generateModelTests>
  <generateModelDocumentation>false</generateModelDocumentation>
  <generateApis>true</generateApis>
  <generateApiTests>false</generateApiTests>
  <generateApiDocumentation>false</generateApiDocumentation>
</configuration>

共有1个答案

狄凯
2023-03-14

根据#/8803,导入映射配置当前不工作。

这似乎是相关的提交,它包含在5.0.0中,因此请尝试之前的稳定提交4.3.1。

 类似资料:
  • 我试图在使用openapi 3规范设计的API中引入可为null的属性。其思想是始终将属性返回给客户端,无论其值是否为null。 YAML文件(我先尝试了,没有默认,结果相同): 生成Java代码: API的响应: 因此,无论属性是否为null,结果总是“present:true”。如果没有nullability,它就可以正常工作,除了从响应中删除不需要的null值。 有什么想法吗? P、 该物业

  • 我已经创建了我的。yml(减少): 我让生成Vertx的java类 类型为的属性按预期生成,但所有引用为的属性均按JsonNullable生成 我复制了生成的类并修复了泛型,以便映射器将值读取到预期的类。你知道怎么写这个吗。生成器创建的yml

  • 我只是将代码从swagger代码生成器迁移到open api代码生成器。我通过maven插件使用生成器。我需要它为一个外部API(在我的控制之外)生成一个客户端,这里给出了使用的swagger文件。 我的插件设置如下: 为了有一个最小的例子,我把昂首阔步的来源去掉了: 当生成器运行正常时,代码无效 结果列表«GenericRow»完全错误。 另一方面,类的名称是正确生成的只有变量名称处理错误。 如

  • 我在openapi v.3规范中有一个模型。我使用openapi生成器maven插件为库webclient(spring 5-webflux)生成java客户端。我想发送回客户端文件和http头。生成的代码没有获取响应标头的方法。 为客户端生成的代码不包含提供对响应头访问的代码。例如,如果我使用库resttemplate,则有一个方法public MultiValueMap getResponse

  • 我正在尝试使用ant从现有代码到war文件生成web服务。Eclipse生成一个完整的ant构建文件(axis_bujava.xml ),它可以工作(但是undeploy.wsdd并不是一直生成的,我不知道为什么),但前提是我从eclipse运行它。 我想有一个独立的脚本来生成我的网络服务(并将其打包到warfile后,但这不是问题^^) 我从eclipse插件文件夹中添加了一些jar到类路径并创

  • 不幸的是,SpringFox还不支持OpenAPI3,而且,当我只想将最初的yaml公开为JSON时,使用基于反射的生成器似乎毫无意义。