1
resposta

Conflito com as dependências do Maven

Prezados tenho as seguintes configurações do arquivo pom.xml:

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>br.com.lacc.projetolivraria</groupId>
    <artifactId>projetolivraria</artifactId>
    <version>1.0.0</version>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/javax.enterprise/cdi-api -->
        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- Implementação do Bean Validation -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.5.Final</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.10.Final</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.2.10.Final</version>
        </dependency>

        <!--MYSQL-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-api Mojarra 2.2 -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.14</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-api Mojarra 2.2 -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.14</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://www.primefaces.org/downloads/ -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.1</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://www.primefaces.org/themes/ -->
        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>all-themes</artifactId>
            <version>1.0.10</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.jboss.weld.servlet/weld-servlet - CDI-->
        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet</artifactId>
            <version>2.4.2.Final</version>
        </dependency>

    </dependencies>

    <!-- Configurando repositorios de terceiros -->
    <repositories>
        <!-- Repo Primefades -->
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <layout>default</layout>
        </repository>
    </repositories>

    <!--configuração do maven-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>

    </build>

</project>

Até alguns dias estava tudo normal, mais desde ontem começou aparecer conflitos com as dependências do core e entityManager como pode ser visualizado na imagem a seguir:

https://prnt.sc/imd87l

Teste com várias versões do core e a entityManager, mais sempre mostra os erros, removi o projeto do intellij, gerei novamente (pensando que poderia ser alguma coisa de cache da IDE ou algo parecido, mais não adiantou). O projeto compila normalmente, até não impacto para dar sequencia nas aulas, mais isso esta me incomodando. Alguma ideia do que pode estar causando isso?

Muito obrigado pela atenção prestada.

1 resposta

Olá Luis,

Parece que a versão do hibernate-validator é que está gerando estes conflitos. Ela é carregada antes dos outros pacotes fazendo com que as suas dependências sejam usadas.

Existe um site onde você pode encontrar informações das dependências de cada pacote que está disponível no maven central (repositório na internet). Vou deixar um link para você analisar uma versão mais atual (a que está no projeto é a 5.2.5) do hibernate validator.

https://mvnrepository.com/artifact/org.hibernate/hibernate-validator/5.3.6.Final

Se precisar saber as dependências das suas dependências é um ótimo lugar. Só navegar os links ou usar a busca.

Concluindo, não deve dar problema na hora de executar o programa, mas em alguns casos isto pode ser um problema maior. Se quiser pode testar alterar a versão do hibernate-validator para ficar mais próxima das dependências do hibernate-entity-manager e do core.

Um abraço e boa sorte aí! Espero ter ajudado!

Luan

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software