TroubleShooting: Fazendo deploy via Maven + JSF Project

 

 

Olá Pessoal,

O troubleshooting de hoje é um problema que descobri ao tentar usar Maven + JSF Project  +  qualquer Server APP. Você deve tá se perguntando: Como assim? Não entendi. Calma que vou explicar.

Lets go…

O problema

Se você criou projetos no Eclipse usando o Jboss tools e decidiu criar um projeto JSF Project  que temos no Jboss tools, vai ter um problema na hora que precisar fazer um quick start deplostart deploy usando algum plugin dos servidores de aplicação a seguir: jetty, jboss e tomcat. Mas, qual o problema?

Simples. Quando criamos um JSF Project todo o conteúdo para web vai ficar na pasta WebContent e ai que começa o problema, pois esta pasta não é padrão do maven e quando fazemos um deploy usando algum plugin dos app servers, simplesmente vamos ver que  suas páginas (.jsp, .xhtml etc) não serão copiadas junto com .war gerado pelo maven e ao acessar sua aplicação verá o error 404. E agora, como resolver?

A solução

Para resolver o problema não encontrei outra solução senão copiar tudo que tinha dentro de WebContent e colocar dentro de webapps, deixando assim:

 mavenwebapps

Execute o seguinte comando:

mvn eclipse:clean

Em seguida

 mvn eclipse:eclipse –Dwtpversion=2.0

No Eclipse, dê um refresh no projeto.

Clique com o botão direito no projeto e vá em properties e verique se está conforme a imagem a seguir. Caso tenha referência para WebContent, basta remover.

mavendeploymentassembly

Agora é só fazer o deploy com o seu servidor de preferência. Claro, é preciso ter o plugin do servidor adicionado ao pom.xml.

Vou ficando por aqui. Ah, há uma solução mais elegante, porém deixarei para o próximo post J

See ya!!

Abraços,

 

2 comentários em “TroubleShooting: Fazendo deploy via Maven + JSF Project”

    1. olá Cintia,
      O war plugin eu não conseguir fazer o deploy corretamente, tendo a estrutura do projeto JSF gerado pelo JBoos tools. Para projetos webapps do maven, ele funciona bem.

Deixe um comentário

O seu endereço de e-mail não será publicado.