2
respostas

Criar projeto jsf com maven

Bom vou mostrar como estou fzd e onde parei: - Crio um novo projeto maven e coloco em webapp - vou no pom e adiciono o seguinte:

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

Com isso o projeto nao fica mais com erros da falta de servlet. - Troco o web.xml para 3.1:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
</web-app>

Uma coisa que percebi eh que alterando aqui no xml, ao clicar com direito no projeto > propriedades > project facets la ele mostra dynamic project 2.3 e nao 3.1, tentei mudar la mas n deixa. nesta tela vi que tem o JSF para adicionar porem ele nao deixa devido ao dynamic estar abaixo de 2.5

  • Coloquei o plugin do jetty:
<plugins>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.3.14.v20161028</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                </configuration>
            </plugin>
        </plugins>

Aqui funciona normal e abre a pagina de hello world, porem nao consigo mudar o dynamic para adicionar o jsf :/ alguem sabe como fazer? tentei alguns tutoriais na net mas nenhum obtive sucesso

@edit Coloquei tb no java compiler para usar o java 1.8 e no facet tb java 1.8, porem o dynamic nao deixa modificar nas propiedades

2 respostas

Guilherme, adiciona as dependências do JSF também.

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.2.2</version>
</dependency>

Vai nas propriedades do teu projeto, na árvore do lado esquerdo clica em Project Facets e marca, no lado direito, a opção JavaServer Faces 2.2.

Vê se só isso funciona.

Consegui de uma outra maneira rs fiz o seguinte:

Coloquei no pom o plugin do maven:

<plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

Com isso ja consegui realizar as alterações de versao java para 1.8 e dynamic para 3.0, e entao a coisa estranha, eu jogava no repositorio do maven que foi mostrado aqui no curso, jogava jsf e achei q ele pegava as dependencias, porem la estava pegando este:

<!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-api -->
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.2.13</version>
</dependency>

E não ia nem com mandinga, dai olhando na net vi gente usando o org. glassfish, tentei e foi d eprimeira com este aqui:

<!-- https://mvnrepository.com/artifact/org.glassfish/javax.faces -->
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.2.13</version>
</dependency>

So nao entendi o porque deste nao aparecer no inicio la no https://mvnrepository.com/ , se souber o porque rsrs