我们目前正在将一个项目从 Grails 5 升级到 Grails 6,该项目使用 mongodb。浏览迁移文档,在尝试运行应用程序的某个时刻,由于找不到类 org/bson/codecs/CollectionCodecProvider,它开始失败。在调查依赖关系后,发现 org.mongodb:bson 依赖关系正在从 4.11 降级到 4.6,并且 4.6 版本没有缺失的类。
我假设其他一些现有依赖项与更新的 mongodb 依赖项发生冲突,并导致旧版本的 bson 依赖项被拉入,但是我还无法确定导致它的原因。
为了进一步验证是否发生了这种情况,我使用 grails 6.1.2 从头开始创建了一个新项目。
grails create-app grails6 --profile rest-api --features events,json-views,markup-views,mongodb
对于新项目,我开始尝试让它能够运行并连接到 mongo,但是似乎这个默认项目也遇到了同样的问题。 bson 依赖项正在解析为版本 4.6.1,并且缺少预期的类。
我假设我可以通过将 bson 依赖项显式添加到项目中作为 4.11.1 版本来解决这个问题,但我想了解为什么会存在这种冲突以及为什么它被降级。
我正在迁移到这个版本呵呵。这里也有同样的问题。
以我个人的经验,迁移到 grails 5 非常令人沮丧...现在迁移到 grails 6 似乎更容易,但这个错误再次使迁移受挫。
尝试在 github 项目的“issues”中创建一个 bug。我们可以从那里获得更多回复:https://github.com/grails/gorm-mongodb/issues