You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在openapi-generator-maven-plugin中设置FAIL_ON_UNKNOWN_PROPERTIES为false

解决方案

可以直接在openapi-generator-maven-plugin的配置中添加特定参数,修改自动生成的ObjectMapper对未知属性的处理逻辑。

具体配置修改

在插件的<configOptions>节点下添加<failOnUnknownProperties>false</failOnUnknownProperties>,修改后的插件配置如下:

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>6.6.0</version>
    <executions>
        <execution>
            <id>spring-boot-api</id>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/viasords.yaml</inputSpec>
                <generatorName>java</generatorName>
                <configOptions>
                    <dateLibrary>joda</dateLibrary>
                    <validateSpec>false</validateSpec>
                    <useSpringBoot3>true</useSpringBoot3>
                    <useJakartaEe>true</useJakartaEe>
                    <!-- 添加这一行配置 -->
                    <failOnUnknownProperties>false</failOnUnknownProperties>
                </configOptions>
                <library>jersey2</library>
                <apiPackage>${default-package}.api</apiPackage>
                <modelPackage>${default-package}.api.model</modelPackage>
                <invokerPackage>${default-package}.api.handler</invokerPackage>
                <generateModelTests>false</generateModelTests>
                <generateApiTests>false</generateApiTests>
            </configuration>
        </execution>
    </executions>
</plugin>

效果验证

重新执行代码生成后,自动生成的JSON类中,FAIL_ON_UNKNOWN_PROPERTIES会被设置为false:

public class JSON implements ContextResolver<ObjectMapper> {  
    public JSON() {
          mapper = JsonMapper.builder()
            .serializationInclusion(JsonInclude.Include.NON_NULL)
            .configure(MapperFeature.ALLOW_COERCION_OF_SCALARS, false)
            .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
            .configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, true)
            .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
            .enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING)
            .enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING)
            .defaultDateFormat(new RFC3339DateFormat())
            .addModule(new JavaTimeModule())
            .addModule(new JodaModule())
            .addModule(new JsonNullableModule())
            .build();
  }
}

这个参数是openapi-generator针对Java客户端生成提供的内置配置项,专门用于控制ObjectMapper是否开启未知属性报错的逻辑,完全适配你的技术栈场景。

内容的提问来源于stack exchange,提问作者jianmin tu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:42:32