[BUG][KOTLIN] Fails to compile after updating to 7.25.0 with useJackson3=false useSpringBoot4=true
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 76/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- kotlin, spring-boot
- 领域
- tooling
调研方向
从报告中显示的生成的 Serializer.kt 开始,使用提供的 Gradle 选项比较 7.24.0 与 7.25.0 的生成结果。阅读相关 issue 或 PR #24709 中的更改和讨论,然后验证 useJackson3=false 会生成 com.fasterxml.jackson 导入,并验证生成的源代码可以使用 Spring Boot 4 和 Jackson 2 编译。
由索引模型根据 Issue 内容生成。
描述
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
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
OpenAPITools/openapi-generator 的其他 Issue
-
Issue: Bug
难度 2/5 1-3 小时 新手友好度 88/100
OpenAPITools/openapi-generator#25021 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
OpenAPITools/openapi-generator#24997 ·
维护者通常 1 天内回复
-
Issue: Bug
难度 2/5 1-3 小时 新手友好度 88/100
OpenAPITools/openapi-generator#24859 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
OpenAPITools/openapi-generator#24830 ·
维护者通常 1 天内回复
-
Issue: Bug
难度 2/5 1-3 小时 新手友好度 72/100
OpenAPITools/openapi-generator#24816 · 1 条评论 ·
维护者通常 1 天内回复
查看 OpenAPITools/openapi-generator 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 88/100
apache/arrow-java#1311 ·
维护者通常 2 天内回复
-
bug triage
难度 2/5 1-3 小时 新手友好度 85/100
-
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
security
难度 2/5 1-3 小时 新手友好度 65/100
IBM/networking-java-sdk#204 ·