Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Maven não reconhece a dependência org.primefaces.themes.all-themes

Pessoal, estou tentando fazer o curso de JSF usando Maven e me foi dito que o curso de CDI usa o mesmo projeto, porém com Maven, então vim pra cá para pegar as dependências. De cada uma delas, fui ao Maven Repository pegar a versão mais atual de cada uma e algumas até estavam descontinuadas, o que talvez possa ser a razão de meus problemas (o que não seria a primeira vez. No curso de JPA, precisei remover a linha do provider no persistence.xml, pois estava apontando para um caminho descontinuado):

Meu primeiro problema é que parece que o Eclipse não está entendendo as tags do Primefaces, como <h:body> (o que pode ser que seja causado pelo segundo problema) e foi por isso que vim aqui ver as dependências a serem usadas.

O meu segundo problema é que o Maven não conseguiu baixar a seguinte dependência:

        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>all-themes</artifactId>
            <version>1.0.10</version>
        </dependency>

Neste momento, depois de muito tentar rodar, abrir e fechar o Eclipse, etc. a mensagem de erro dizendo que ele não consegue encontrar o .jar dessa dependência não aparece mais, mas o ícone do pom.xml continua com o x vermelho. se removo essa dependência, o x vermelho some, mas continuo com o primeiro problema.

Por coincidência, esta é a única dependência que não mudou de versão ou não ficou descontinuada desde a criação do curso até o presente.

Outra coisa que gostaria de saber é o archetype utilizado. Estou assumindo que o correto para este curso é o webapp. Pessoal, estes cursos são em vídeo, então não há necessidade de pular a parte de configuração para ganhar tempo. Dêem a opção para os alunos assistirem a configuração do projeto ou baixar o projeto pronto e pular um vídeo.

Segue abaixo meu pom.xml para análise:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.com.dominio</groupId>
    <artifactId>library</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>Library Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.10.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.0.Beta2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.14</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.14</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.6</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>all-themes</artifactId>
            <version>1.0.10</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.1</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <layout>default</layout>
        </repository>
    </repositories>
    <build>
        <finalName>library</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </build>
</project>

Obrigado!

PS.: eu sei que Livraria != Library hehehe Estou tendo umas idéias aqui para organizar minha biblioteca pessoal :)

1 resposta
solução!

Fala Guilherme, tudo bem?

o não é uma tag do Primefaces é uma tag do JSF (xmlns:html), lembrando que primefaces é uma extensão do JSF e não uma implementação. Independente da versão dos jars que estiverem no seu POM.xml, você precisa acertar a configuração do projeto no eclipse, se os jars serão providos pelo Maven ou se serão providos pelo servidor de aplicação, se isso não for setado pode dar conflito. Qual servidor você vai utilizar?

Quanto a segunda dúvida, por que vc quer usar o themes do Primefaces neste momento do projeto? Se vc for fazer os cursos de JSF, isso só será abordado mais pra frente no segundo curso.

O erro do maven de ficar com o x no projeto pode ser resolvido clicando com o botão esquedo no projeto, na aba Maven, dando um refresh no projeto. Porém isso não vai ajudar se a dependencia estiver com o caminho errado ou faltando um repositório.

O curso de JSF tem toda a configuração necessária em vídeo e transcrita também para facilitar a vida de quem for implementar o projeto. Aconselho utilizar a config padrão do curso sem o Maven primeiro e depois tentar implementar no seu projeto com o Maven.