Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[BUG][KOTLIN] Fails to compile after updating to 7.25.0 with useJackson3=false useSpringBoot4=true

未关闭 适合新手
#24,842 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
76/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
领域
tooling

调研方向

从报告中显示的生成的 Serializer.kt 开始,使用提供的 Gradle 选项比较 7.24.0 与 7.25.0 的生成结果。阅读相关 issue 或 PR #24709 中的更改和讨论,然后验证 useJackson3=false 会生成 com.fasterxml.jackson 导入,并验证生成的源代码可以使用 Spring Boot 4 和 Jackson 2 编译。

由索引模型根据 Issue 内容生成。

描述

Issue: Bug
Bug Report Checklist
  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

7.25.0 breaks backward compatibility, by force-setting useJackson3=true for Spring 4 and jvm-spring-restclient

It's incorrect to enforce Jackson 3 with those settings: Spring 4.0 and 4.1 work with Jackson 2, it's just deprecated. RestClient still works with Jackson 2.

openapi-generator version

7.25.0, it's a regression compared to 7.24.0

OpenAPI declaration file content or url
Generation Details

See 'steps to reproduce'

Steps to reproduce

I only generate sources and use my own build.gradle.kts, throwing away generator's one.

dependencies {
    api(platform("org.springframework.boot:spring-boot-dependencies:4.0.8"))

    api("org.springframework:spring-web")

    // api because Serializer.jacksonObjectMapper is public
    api("com.fasterxml.jackson.core:jackson-databind")
    api("org.openapitools:jackson-databind-nullable:0.2.11")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
}

openApiGenerate {
    configOptions.set(
        mapOf(
            "omitGradleWrapper" to "true",
            "library" to "jvm-spring-restclient",
            "useSpringBoot3" to "true",
            "useSpringBoot4" to "true",
            "useJackson3" to "false",
            "serializationLibrary" to "jackson",
        )
    )
}

What complied with 7.24.0, fails to compile in 7.25.0 because Serializer.kt is now:


import tools.jackson.databind.DeserializationFeature
import tools.jackson.databind.json.JsonMapper
import tools.jackson.databind.cfg.DateTimeFeature
import com.fasterxml.jackson.annotation.JsonInclude
import tools.jackson.module.kotlin.jsonMapper
import tools.jackson.module.kotlin.kotlinModule

object Serializer {
    @JvmStatic
    val jacksonObjectMapper: JsonMapper = jsonMapper {
        addModule(kotlinModule())
        changeDefaultPropertyInclusion { it.withValueInclusion(JsonInclude.Include.NON_ABSENT) }
        disable(DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS)
        disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
    }
}

Because I explicitly set useJackson3=false, the generated code should import com.fasterxml.jackson

Related issues/PRs

#24709

Suggest a fix

Remove the addition of setUseJackson3(true) as pointed out in https://github.com/OpenAPITools/openapi-generator/pull/24709/changes#r3917417022

主要语言
Java
星标
26.8k
派生
7.7k
平均合并
3 天 16 小时
30 天内合并 PR
122

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OpenAPITools/openapi-generator 的其他 Issue

查看 OpenAPITools/openapi-generator 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。