【问题标题】:How to resolve circular dependencies for artifacts in bazel?如何解决 bazel 中工件的循环依赖关系?
【发布时间】:2022-01-05 21:30:14
【问题描述】:

我的应用程序依赖于以下工件

com.oracle.jdbc:ojdbc8

有循环依赖关系
com.oracle.jdbc:ucp

构建失败并出现以下错误

ERROR: /private/var/tmp/_bazel_me/4f1994ece960b360388a372b5e6aa4b2/external/maven/BUILD:2757:11: in jvm_import rule @maven//:com_oracle_jdbc_ojdbc8: cycle in dependency graph:
   //package/java:MyClass
.-> @maven//:com_oracle_jdbc_ojdbc8
|   @maven//:com_oracle_jdbc_ucp
`-- @maven//:com_oracle_jdbc_ojdbc8

有没有办法解决这个问题?

【问题讨论】:

    标签: java maven bazel bazel-rules


    【解决方案1】:

    看这里的神器:
    https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc8

    只有一个版本:
    https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc8/12.2.0.1

    它依赖于 com.oracle.jdbc:upc,它确实又依赖于 com.oracle.jdbc:ojdbc8:12.2.0.1
    https://mvnrepository.com/artifact/com.oracle.jdbc/ucp/12.2.0.1

    这肯定是个错误,因为我不相信 maven 也允许循环依赖。

    回看https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc8,它说这是移到https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8,并且upc的版本没有依赖: https://mvnrepository.com/artifact/com.oracle.database.jdbc/ucp/12.2.0.1

    所以也许com.oracle.database.jdbc:ojdbc8 对你有用(或特定版本com.oracle.database.jdbc:ojdbc8:12.2.0.1,因为之前的版本是12.2.0.1,最新版本是21.4.0.0.1)

    有趣的是,com.oracle.database.jdbc:ojdbc8 说它也被移动了:https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 2021-04-26
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多