Maven Jboss Tool: Aprendendo a criar projetos

Veja neste artigo como criar um projeto do Zero utilizando o Maven, e para facilitar a criação deste utilizaremos o Jboss Tool.

Para quem está acostumado a trabalhar com projetos que demandam a importação de muitas bibliotecas e suas dependências, sabe o quão chato e demorado se torna apenas realizar essas importações. Muita das vezes perde-se um longo tempo apenas fazendo importações, coisa que não deveria acontecer, já que o foco do projeto é o negócio e não a tecnologia, esta está apenas para auxiliar na conclusão do mesmo e não atrapalhar.

Log4j, Spring, Hibernate, JSF2, MySQL, JSTL e quantas mais ferramentas você precisar serão necessárias importar, e o maior problema é que cada uma dessas ferramentas tem inúmeras dependências. Ainda temos outro problema, quando vamos criar outro projeto temos que importar tudo novamente, organizar tudo, o que torna um retrabalho oneroso e dispendioso.

Então como resolver isso ? MAVEN. Através dessa ferramenta conseguimos apenas em 1 arquivo (pom.xml) dizer tudo que nosso projeto precisa e deixar que ele faça o resto do trabalho para nós. E quando vamos criar um novo projeto, basta copiar nosso pom.xml e pronto, temos tudo necessário no novo projeto.

Neste artigo vamos ver como criar um projeto do zero utilizando Maven, passo a passo. Mas como pré-requisito para este artigo você já deve ter instalado o JBoss Tool e o Eclipse. O JBoss Tool para quem ainda não conhece é uma poderosa ferramenta que ajuda na criação de diversos projetos e tem muitas peculiaridades que com certeza vão fazer diferença na hora que você for desenvolver, para instalá-lo basta ir até Help->Eclipse Marketplace e procurar pelo JBoss Tool para a sua versão do eclipse.

Iniciando projeto Maven

Com o JBoss Tool instalado vamos iniciar a criação do nosso projeto. Vá até File -> New -> Other, ou simplesmente CTRL + N. No campo de pesquisa digite: Maven Project. Clique em Maven Project e depois next, assim como na figura 1.


Figura 1: Escolhendo Maven Project

Na próxima tela não mexa em nada, apenas clique em Next novamente. E você será direcionado para uma tela a fim de escolher o arquétipo do seu projeto. Uma coisa interessante do Maven além de gerenciar toda as dependências do seu projeto é a criação de uma estrutura de diretório padronizada, ou seja, se você está trabalhando com um projeto Web terá um arquétipo próprio para seu projeto, e todos os outros desenvolvedores poderão escolher o mesmo arquétipo.

Veja o nível de aplicabilidade disso: Independente do projeto que você ver, se ele tiver o mesmo arquétipo que o seu, você saberá exatamente onde se encontram cada arquivo, ou seja, a produtividade neste caso é muito melhor do que criar sua própria estrutura de diretórios, a lei é: Padronize sempre que puder.

Enfim, na tela de escolha do arquétipo vamos digitar “maven-archetype-webapp” e selecionar a única opção que deverá aparecer e clicar em Next, assim como na figura 2.


Figura 2: Escolhendo o Arquétipo

A próxima tela você configurará o Group ID, Artifact ID e Version. O Grupo ID pode ser o domínio da sua aplicação, geralmente: br.com.meuprojeto. O Artifact ID é o nome final que ficará o seu Jar, ou seja, o nome da sua aplicação, por exemplo: Projeto002 e a Version é a versão correspondente do mesmo, após isso clique em Finish, você deverá esperar o Maven criar todo seu projeto para continuarmos.

Você verá algo como a estrutura mostrada na figura 3, fique atento a um arquivo chamado pom.xml, é nele que faremos toda a configuração necessária.


Figura 3: Estrutura criada pelo Maven

Lembre-se de uma coisa: Nosso arquétipo escolhido foi próprio para Web, de acordo com sua necessidade fique a vontade para mudar o arquétipo na hora de criação do projeto.

Por fim, teremos que agora fazer a configuração do pom.xml O arquivo pom.xml contém todas as dependências do nosso projeto, ou seja, tudo que ele precisa para funcionar. Vamos aqui simular que nosso projeto precisa dos seguintes frameworks e ferramentas: Hibernate, Spring, JSF2 e Conector MySQL. Perceba que em cada um destes temos várias outras dependências, são as dependências das dependências, mas isso não nos importa deixe que o Maven vai se encarregar de procurar quem está faltando para o Hibernate funcionar, por exemplo.

Na listagem 1 você verá nosso pom.xml completo com todas as dependências.

Listagem 1: Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>br.com.meuprojeto</groupId> <artifactId>Projeto002</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>Projeto002 App</name> <url>http://maven.apache.org</url> <properties> <org.springframework.version>3.0.6.RELEASE </org.springframework.version> </properties> <dependencies> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.4.0.GA</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.0.2.GA</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.15</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>asm</groupId> <artifactId>asm-commons</artifactId> <version>3.1</version> </dependency> </dependencies> <build> <finalName>Projeto002</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.5</version> <configuration> <targetJdk>1.6</targetJdk> </configuration> </plugin> </plugins> </build> </project>

Quando você colocar a configuração acima no pom.xml, automaticamente será feito o download de todo o conteúdo necessário e suas dependências para uma pasta chamada “.m2”, própria do Maven.

Geralmente ela fica dentro da raiz da pasta do usuário.

Podem ocorrer alguns problemas na hora de realizar o download dessas dependências, por falha no download, conexão com internet ou outro problema qualquer, para realizar o download após o erro basta forçar o “update” clicando com o botão direito do mouse no pom.xml e forçando a atualização das dependências.

CONCLUSÃO

Após iniciar o desenvolvendo de projetos com Maven, você notará rapidamente a facilidade em começar a trabalhar literalmente no projeto e não se preocupar com coisas que verdadeiramente não deveriam ser preocupação do Analista. O Maven aumenta e muito a produtividade diária de desenvolvimento, e com certeza já está difundido nas grandes fábricas de software.

Veja também

Artigos relacionados