Você está na página 1de 6

Meus cursos

1 de 6

http://www.alura.com.br/course/MAVEN/section/4

Alura | Cursos Online de Tecnologia


Maven: gerenciando dependncias

Aplicaes Web

Explicao
(Reportar problema na explicao)

Esse captulo continua os projetos criados no captulo anterior.


Mas e se nosso projeto no ser distribudo via um nico arquivo jar como uma
biblioteca e uma aplicao cliente costumam ser distribudas? O que fazer com
uma aplicao web Java EE? Queremos nossas bibliotecas, configuraes no
WEB-INF etc tudo compactado em um arquivo war.
Comeamos nosso segundo projeto criando uma nova aplicao, mas desta vez
web. A mudana ocorre ao utilizar um archetype de web e indicar o Maven que o
Eclipse ser configurado com suporte a projetos web:
mvn archetype:generate -DgroupId=br.com.caelum.maven -DartifactId=produtos
mvn eclipse:eclipse -Dwtpversion=2.0
Importamos o projeto no Eclipse novamente via "Import existing project" e temos a
estrutura tpica de um projeto com convenes do maven (src/main, src/test). Uma
diferena visvel o diretrio de nossa aplicao web chamado "WebContent".

06/10/2014 09:40

Meus cursos

2 de 6

http://www.alura.com.br/course/MAVEN/section/4

nele que colocaremos imagens, javascript etc. tambm ai que se encontra o


diretrio "WEB-INF" de configurao de nossa aplicao web, incluindo o web.xml
Sendo assim, vamos configurar o vraptor como controlador web. Primeiro
adicionamos a dependncia no pom.xml:
<dependency>
<groupId>br.com.caelum</groupId>
<artifactId>vraptor</artifactId>
<version>3.5.0</version>
</dependency>
Criamos o diretrio src/main/java e executamos a atualizao do projeto no Eclipse:
mkdir src/main/java
mvn eclipse:eclipse -Dwtpversion=2.0
Dentro do nosso projeto, adicionamos agora um controller. Lembre-se de criar no
diretrio src/main/java:
package br.com.caelum.maven;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
@Resource
public class BemvindoController {

06/10/2014 09:40

Meus cursos

3 de 6

http://www.alura.com.br/course/MAVEN/section/4

private Result result;


public BemvindoController(Result result) {
this.result = result;
}
@Path("/")
public void bemvindo() {
System.out.println("estou invocando o vraptor");
result.use(Results.http()).body("<html>bem vindo!</html>");
}
}
Apagamos o nosso index.jsp e configuramos o web.xml:
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xm
version="3.0">
<display-name>produtos-web</display-name>
</web-app>
Mas como rodar nossa aplicao? Como o maven funciona baseado em plugins
existem centenas deles que fazer diversas tarefas. Adicionamos o plugin do jetty
no pom.xml:
<build>

06/10/2014 09:40

Meus cursos

4 de 6

http://www.alura.com.br/course/MAVEN/section/4

<finalName>produtos-web</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
E levantamos o jetty:
mvn jetty:run

Agora podemos acessar http://localhost:8080

06/10/2014 09:40

Meus cursos

5 de 6

http://www.alura.com.br/course/MAVEN/section/4

E temos o resultado no console:

Podemos configurar diversas caractersticas de um plugin atravs da tag


configuration. No nosso caso mudaremos a porta do jetty:
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<connectors>

<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConn
<port>9090</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
</configuration>
Note como fcil criar uma aplicao web com Maven. Lembre-se tambm que
existem centenas de plugins para Maven: sempre que precisar executar uma
tarefa, procure por plugins que j possam ter implementada ela.

06/10/2014 09:40

Meus cursos

6 de 6

http://www.alura.com.br/course/MAVEN/section/4

06/10/2014 09:40

Você também pode gostar