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.

Maven continúa descargando una versión más reciente de una dependencia.

Tengo una biblioteca llamada lib-kafka-wrapper que utiliza la dependencia kafka-clients:2.8.0:

    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>2.8.0</version>
    </dependency>

mvn dependency:tree muestra correctamente:

[INFO] com.mycronic.as.cdp:lib-kafka-wrapper:jar:0.5.6
[INFO] +- org.apache.kafka:kafka-clients:jar:2.8.0:compile

Pero si utilizo lib-kafka-wrapper en otro proyecto:

    <dependency>
        <groupId>com.mycronic.as.cdp</groupId>
        <artifactId>lib-kafka-wrapper</artifactId>
        <version>0.5.6</version>
    </dependency>

sigue descargando la versión kafka-clients:3.0.0:

[INFO] com.mycronic.as.cdp:app-pnp-analytics:jar:1.1.2-SNAPSHOT
[INFO] +- com.mycronic.as.cdp:lib-kafka-wrapper:jar:0.5.6:compile
[INFO] |  +- org.apache.kafka:kafka-clients:jar:3.0.0:compile

Editar:

pom.xml comienzo:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.1</version>
        <relativePath/> <!-- buscar padre desde el repositorio -->
    </parent>

¿Alguna idea de lo que estoy haciendo mal?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que la dependencia transitiva de la versión 3.0.0 del cliente de Kafka está siendo incluida por otra dependencia en tu proyecto. Para investigar, puedes usar el siguiente comando:

    mvn dependency:tree -Dverbose
    

    Esto te mostrará el árbol completo de dependencias con todas las dependencias transitivas y sus respectivas versiones. A partir de ahí, puedes identificar qué dependencia está causando el conflicto de versiones y ajustar la versión adecuadamente.

    Otra cosa a verificar es si el artefacto “lib-kafka-wrapper” tiene una dependencia en la versión 3.0.0 del cliente de Kafka en su propio archivo pom.xml. Puedes verificar esto mirando el archivo pom.xml del proyecto “lib-kafka-wrapper”.

    Si ninguna de las opciones anteriores ayuda, intenta excluir la dependencia transitiva del cliente de Kafka de la dependencia que está causando el problema de la siguiente manera:

    <dependency>
        <groupid>...</groupid>
        <artifactid>...</artifactid>
        <version>...</version>
        <exclusions>
            <exclusion>
                <groupid>org.apache.kafka</groupid>
                <artifactid>kafka-clients</artifactid>
            </exclusion>
        </exclusions>
    </dependency>
    

    Esto excluirá la dependencia del cliente de Kafka de la dependencia especificada, y se debería usar la versión especificada en el archivo pom.xml de tu “lib-kafka-wrapper”.

Comments are closed.