Como JSF é uma especificação, você só precisa da primeira ou da segunda, mas não da terceira. Você só vai precisar da API para compilar o teu código. A implementação não é necessária, pois ela já está presente no container de aplicação (Wildfly ou glassfish, por exemplo). Quando você fizer deploy e tua aplicação for rodar no container, a implementação vai estar automagicamente no classpath e tudo funciona.
D
Dayson_Rodrigues
humm… No caso do Tomcat, tenho que colocar a implementação e a dependencia coreto?
D
Dayson_Rodrigues
Uma duvida e dessa forma:
Pelo que entendi, ele paga a ultima versão da dependencia e em uma tag eu informo qual versão quero usar?
Como o Tomcat é um Servlet Container, ele não tem uma implementação do JSF. O que eu falei não vale pro Tomcat, você precisa colocar a implementação junto nesse caso.
Não sei se tem como você fazer um deploy separado da implementação do JSF, ou tem que coloca-la dentro do teu war mesmo.
D
Dayson_Rodrigues
beleza! valeu pela dica.
L
lvbarbosa
Isso daí é outra coisa. As vezes você declara várias dependências de bibliotecas de um mesmo “fabricante”.
Por exemplo, suponhamos que o GUJ tem um conjunto de bibliotecas para web services. Imagine que são 6 bibliotecas. No teu pom, você vai colocar a dependência para cada uma delas, juntamente com a versão. Como elas são desenvolvidas em conjunto, a versão delas sempre é igual. Estamos agora, por exemplo, na versão 1.1. Você vai lá e declara todas as dependências, e coloca a versão 1.1 em cada uma delas. De um dia para o outro, sai uma versão 5.0 totalmente revolucionária e você quer atualizar o teu pom. Ao invés de ter que sair editando cada versão de cada dependência, você pode declarar variáveis (tipo <guj.version>5.0</guj.version>) e só referenciar essa variável dentro das dependências. É pra isso que serve aquele ${variavel}. Também serve para organizar melhor o pom.