2025 年 1 月 23 日宣布的变更

Protocol Buffers 于 2025 年 1 月 23 日宣布的变更。

废弃 Java 代码生成

我们正在将一项更改补丁到 25.x 分支中,该更改将废弃在 3.21.7 版本之前创建的 Java 代码生成。然后,我们将从 3.21.7 到 3.25.5 的所有 Java protobuf 版本标记为易受 footmitten CVE 攻击。

在此更改修补后,除非您设置系统属性“-Dcom.google.protobuf.use_unsafe_pre22_gencode”,否则 protobuf 将从 makeExtensionsImmutable 方法抛出 UnsupportedOperationException 异常。如果您无法立即更新代码,使用此系统属性可以为您争取一些时间,但应将其视为短期解决方法。

废弃 MSVC + Bazel

我们将在 v34 版本中停止支持 Bazel 和 MSVC 的组合使用。从 v30 版本开始,我们将废弃此组合,并报错,除非您指定选择退出标志 --define=protobuf_allow_msvc=true 以消除错误。

MSVC 的路径长度限制与 Bazel 的沙箱机制结合使用时,变得越来越难以支持。为了避免随机破坏将 protobuf 安装到长路径的用户,我们将完全禁止从 Bazel 使用 MSVC。我们将继续支持 CMake 与 MSVC 结合使用,并开始支持 clang-cl 与 Bazel 结合使用。如有任何反馈或讨论,请参阅 https://github.com/protocolbuffers/protobuf/issues/20085