gpt4 book ai didi

bazel - 如何升级支持 Bazel 的库的 Maven 依赖项?

转载 作者:行者123 更新时间:2023-12-01 00:14:39 26 4
gpt4 key购买 nike

我的库支持 Bazel 构建并且依赖于 Maven Central。我图书馆的用户 wants to use a newer version of a dependency that has new transitive dependencies .那怎么办呢?

gRPC 1.17 依赖于 Guava 26。然而,Guava 27 添加了对 com.google.guava:failureaccess 的依赖。 .通常,使用 gRPC 的应用程序只会创建自己的 native.maven_jar()使用新版本并禁用 gRPC 对 native.maven_jar() 的调用.这将“升级”@com_google_guava_guava然后由 gRPC 和应用程序使用的存储库。

但是@com_google_guava_guava不包括依赖信息。这通常可以通过使用第三方来解决 java_library() s 将传递依赖拼接在一起。然而,那些java_library() s 不能被应用程序改变。

我相信 bind() 将解决这个问题,因为 gRPC 可以依赖于 //external:com_google_guava_guava这可能是 java_library() .但是bind()气馁。

最佳答案

考虑将您的库切换为使用 java_import_external而不是 maven_jar .
java_import_external目标 includes dependency information从而允许应用程序取代目标版本及其传递依赖项。

记得加if native.existing_rule(name) == None:在定义 @com_google_guava_guava 之前为了允许您的库的用户使用更新了依赖项的较新版本的 Guava 自己定义它。

关于bazel - 如何升级支持 Bazel 的库的 Maven 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com