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



有一个项目依赖于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的服务都与客户端1.23.0兼容,任何版本v3-revYYYYMMDD-1.32.1的api-service都与api-client1.32.1兼容?

虽然它可能看起来像常见的语义版本控制部分信号兼容性,但情况似乎并非如此。

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

查看不同服务的pom文件,例如,服务版本为v3-rev20210201-1.31.0,它依赖于客户端版本1.31.1,而v3-rev20210612-1.31.0依赖于1.31.5或者更糟糕的是:服务版本v3-rev20220508-1.32.1依赖于客户端版本1.34.0

为了帮助其他需要帮助的人,我在访问google表单时遇到了同样的问题。我的解决方案是使用以下依赖项:

<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-sheets</artifactId>
<version>v4-rev20230815-2.0.0</version>
</dependency>

也许这种情况的解决方案是依赖:

<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-androidpublisher</artifactId>
<version>v3-rev20230905-2.0.0</version>
</dependency>

最新更新