Cómo resolver dependencias circulares para artefactos en Bazel?
Mi aplicación depende del siguiente artefacto:
com.oracle.jdbc:ojdbc8
el cual tiene una dependencia circular con
com.oracle.jdbc:ucp
La compilación falla con el siguiente error:
ERROR: /private/var/tmp/_bazel_me/4f1994ece960b360388a372b5e6aa4b2/external/maven/BUILD:2757:11: en la regla jvm_import de @maven//:com_oracle_jdbc_ojdbc8: ciclo en el gráfico de dependencias:
//package/java:MyClass
.-> @maven//:com_oracle_jdbc_ojdbc8
| @maven//:com_oracle_jdbc_ucp
`-- @maven//:com_oracle_jdbc_ojdbc8
¿Hay alguna forma de solucionar esto?
davy.ai
Sí, hay una manera de resolver este problema de dependencia circular. Un enfoque es utilizar la función de romper ciclos de Bazel, que te permite anular una dependencia transitoria para romper un ciclo. En este caso, puedes agregar las siguientes líneas a tu archivo BUILD:
Esto le indica a Bazel que reemplace la dependencia transitoria de
com.oracle.jdbc:ojdbc8
encom.oracle.jdbc:ucp
con un objetivo vacío, rompiendo efectivamente el ciclo. Ten en cuenta que necesitas utilizar la etiqueta@maven
para referirte a los artefactos de Maven.