google-api-client 和 google-api-services 之间的版本兼容性

man*_*una 7 java versioning google-api-java-client

有一个项目依赖于google-api-clientgoogle-api-services-drive

google-api-client版本看起来像这样:1.23.0,并且 github 上有这个库的变更日志。

google-api-services-drive版本看起来像这样:v3-rev105-1.23.0,并且没有明确的变更日志。rev同一版本号有许多不同的后缀,例如v3-rev116-1.23.0v3-rev135-1.23.0等。看起来它是每周构建的,并且修订号不断增加。

问题是:客户端和服务版本如何兼容?是否可以安全地假设,任何具有版本的服务都v3-revXXX-1.23.0与 client 兼容1.23.0,并且任何具有版本的 api-servicev3-revYYYYMMDD-1.32.1都与 api-client 兼容1.32.1

man*_*una 7

虽然它看起来像是常见的语义版本控制部分表示兼容性,但事实似乎并非如此。

然而,有一种简单的方法可以找出google-api-client特定版本google-api-service需要哪个版本。问题是,google-api-service依赖于google-api-client,您可以...对,您可以在 POM 文件中找到它!

查看不同服务的 POM 文件,有时会发现服务版本依赖于客户端版本,而依赖v3-rev20210201-1.31.0于客户端版本1.31.1, 甚至更糟糕:服务版本依赖于客户端版本。v3-rev20210612-1.31.01.31.5v3-rev20220508-1.32.11.34.0

  • 真是一团糟......,甚至我收到的错误消息也很可笑:“您当前正在使用 2.0.0 版本的 google-api-client 运行。您至少需要 1.15 版的 google-api-client 才能运行 1.23.0 版的 Drive API 库。 (11认同)
  • 对于那些像我一样从谷歌来到这里的人来说,我非常困惑,因为我猜 mvn 按版本排序?https://mvnrepository.com/artifact/com.google.apis/google-api-services-drive 所以我认为最新版本是“v3-rev197-1.25.0”。如果您按 CTRL+F 2023,您会找到更新的版本,此时为“v3-rev20230822-2.0.0” (3认同)
  • 我向 Google [报告了此错误](https://issuetracker.google.com/issues/268844492)。我尝试在 `build.gradle` 中将我的 api-client lib 降级为“v1.35.2”,但由于某种原因,构建继续使用 v2.2.0。 (2认同)