es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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:

    overrides = {
        "@maven//:com_oracle_jdbc_ucp": "//external:empty",
    }
    

    Esto le indica a Bazel que reemplace la dependencia transitoria de com.oracle.jdbc:ojdbc8 en com.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.

Comments are closed.