Eclipse + Maven + Tomcat (ou JBoss) - DICA

4 respostas
parcimonioso

Uma grande dificuldade que se tem ao se utilizar o Maven em um projeto WEB é

executá-lo em servidores como Tomcat ou JBoss, devido à estrutura padrão de diretórios do

Maven e também em não mais manter as bibliotecas no diretório WEB-INF/lib da aplicação.

Acaba-se optando por usar o Jetty, devido a sua integração com o Maven através do Maven

Jetty Plugin.
Mas como rodar minha aplicação que usa Maven em web containers como JBoss ou Tomcat?

Primeiramente deve-se ter instalado o plugin m2eclipse. Informações como instalá-lo

podem ser obtidas no site oficial: http://m2eclipse.codehaus.org/
Devemos então configurar um builder para o projeto em questão. Vá no menu Project ->
Properties -> Builders. Adicione um novo Builder clicando em New. Escolha Maven Build.

Escolha um nome para o builder. Configure conforme a figura em anexo. Usaremos a gol

war:exploded no lugar de install. Ela explode a aplicação no diretório target/seuProjeto,

inclusive adicionando em WEB-INF/lib as dependências do projeto. Habilite o builder e

habilite também o build automático (menu Project -> Build Automatically).
Agora toda vez que você salvar algum arquivo do seu projeto ele executará esse

builder, atualizando o diretório target/seuProjeto.
Após isso basta configurar o seu container web para apontar para esse diretório. No

caso do Tomcat, crie um context.xml com o seguinte conteúdo:

<Context path="C:\projetos\meuProjeto\target\meuProjeto" reloadable="true" antiJARLocking="true"> </Context>
E no eclipse crie um server apontando para esse Tomcat ou utilize o plugin Sysdeo.

No caso do JBoss, ele precisa que o diretório de deploy termine com .war, então

adicione a seguinte configuração no seu pom.xml:

<project> ... <build> ... <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.0</version> <configuration> <webappDirectory> ${project.build.directory}/${project.build.finalName}.war </webappDirectory> </configuration> </plugin> </plugins> </build> </project>
Depois modifique a seguinte seção do seu jboss-service.xml:

<attribute name="URLs"> deploy/, file:/C:/projetos\meuProjeto\target\meuProjeto.war </attribute>

Espero que isso ajude alguém. : )


4 Respostas

bruno77sa

ola!! parcimonioso

cara muito legal sua dica, só que eu to quebrando a cabeça pra trabalhar com o maven apesar de achar ele muito legal… veja eu ja consegui:
gerenciar dependencias e criar projeto, junto com o plugin do eclipse (sonatype m2)

na verdade o que eu quero é integra-lo ao wtp do eclipse, por exemplo gostaria de no eclipse configurar pra o jetty se auto-reiniciar(saco ta reiniciando servidor sempre q agente altera algo).

ser vc puder me ajudar agradeço

Bruno

Henrik

bela dica, ajudou mto!

marcoas

Dica muito interessante. No meu caso (não entendi porque) se eu apontasse diretamente pro meuprojeto.war o jboss mostrava um erro de que o war não era válido. Para fazer funcionar tive que alterar a tag do maven para ele criar uma pasta dentro da pasta target (projeto/target/deploy/)e então criar o war dentro dessa pasta, e la no jboss-service.xml adicionei “/projeto/target/deploy/”.

D

vale lembrar que tem um ótimo tutorial no GUJ, do Maurício Linhares, que vale a pena ler. É ótimo e abrangente, sem enrolação, fora que o cara manda bem, fez bem didático e de compreensão infalível.
De resto, os livros indicados na bibliografia do tutorial são referências.

PS: Parabéns também pelo tutorial. Quanto mais, melhor :smiley:

Criado 14 de março de 2008
Ultima resposta 18 de jul. de 2008
Respostas 4
Participantes 5