Você está na página 1de 33

(http://luizricardo.

org/)

Instalando, con gurando e


usando o Maven para
gerenciar suas
dependncias e seus
projetos Java
(http://luizricardo.org/2014/06/instalando-
con gurando-e-usando-o-
maven-para-gerenciar-
suas-dependencias-e-seus-
projetos-java/)
24/06/2014 (http://luizricardo.org/2014/06/instalando-con gurando-e-
usando-o-maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/)
Arquitetura de Software (http://luizricardo.org/categoria/arquitetura/), Java
(http://luizricardo.org/categoria/desenvolvimento/java/)

Este artigo uma introduo ao Maven


(http://maven.apache.org/), uma ferramenta de gerenciamento
de dependncias e ciclo de vida de um projeto em Java.

Para usar o Maven, voc precisa ter o JDK instalado. Voc


tambm pode integr-lo sua IDE. Para saber como instalar o
JDK e o Eclipse, consulte os seguintes artigos:

Instalando e Con gurando o Java Development Kit 7 para


Desenvolvimento (http://luizricardo.org/2013/11/instalando-
e-con gurando-o-java-development-kit-7-para-
desenvolvimento/)

Instalando, Con gurando e Usando o Eclipse Kepler


(http://luizricardo.org/2013/11/instalando-con gurando-e-
usando-o-eclipse-kepler/)

O que o Maven?
O Maven uma ferramenta de gerenciamento de dependncias
e do ciclo de vida de projetos de software no sentido tcnico.
Isso inclui:

Facilitar a compilao do cdigo, o empacotamento (JAR,


WAR, EAR, ), a execuo de testes unitrios, etc.

Uni car e automatizar o processo de gerao do sistema.


Nada mais de uma coleo de passos e scripts a serem
executados manualmente.

Centralizar informaes organizadas do projeto, incluindo


suas dependncias, resultados de testes, documentao,
etc.

Reforar boas prticas de desenvolvimento, tais como:


separao de classes de teste das classes do sistema, uso
de convenes de nomes e diretrios, etc.

Ajuda no controle das verses geradas (releases) dos seus


projetos.

Conceitos importantes

Artefato (artifact)

Um artefato geralmente um arquivo JAR que ca no


repositrio do Maven, mas pode ser de outro tipo.

Cada artefato identi cado atravs dos seguintes elementos:

Grupo: como o endereo do site ao contrrio, como


br.com.starcode , org.apache , com.google , com.ibm , etc.

Identi cador nico de artefato: geralmente o nome do


projeto. Ele deve ser nico por grupo.

Nmero de verso: a verso do projeto, como 1.4.2 ou


3.0 . Se houver o su xo -SNAPSHOT ( 0.0.1-SNAPSHOT , por

exemplo) signi ca que o projeto est em desenvolvimento e


o pacote pode ser alterado.

Tipo do projeto: jar, war, ear, pom (projeto de


con gurao).

Classi cador: identi cao opcional para diferenciar


variaes da mesma verso. Por exemplo, se o programa
compilado para diferentes verses do Java podemos usar os
classi cadores jdk4 e jdk6 . Se h variaes espec cas
para Sistemas Operacionais, podemos ter os classi cadores
linux e windows .

Repositrio local

um diretrio em seu PC onde os artefatos so armazenados


aps baixados de um repositrio remoto na internet ou na
intranet. Voc tambm pode instalar os artefatos dos seus
projetos nesse repositrio executando o install do Maven.
Continue lendo para entender o que isso.

O repositrio possui uma estrutura padro onde o Maven


consegue encontrar os artefatos atravs da identi cao do
mesmo.

Repositrio remoto
Consiste numa aplicao que disponibiliza artefatos do Maven.
Pode se um repositrio pblico na Internet, onde criadores de
bibliotecas e frameworks disponibilizam seus artefatos, ou pode
ser um repositrio privado da empresa, disponvel na intranet.

Existe um repositrio central que j vem con gurando no


Maven, mas algumas empresas criam seus prprios
repositrios. Inclusive voc pode criar o seu instalando o
Artifactory
(http://www.jfrog.com/home/v_artifactory_opensource_overview)
ou Nexus (http://www.sonatype.org/nexus/) num servidor.

Quando adicionamos esses repositrios remotos em nossa


instalao do Maven, ele capaz de localizar e baixar
automaticamente as dependncias atravs da identi cao do
artefato.

Arquivo POM

O arquivo pom ( pom.xml ) a con gurao principal do Maven e


estar presente em todo projeto. Nele voc declara a
identi cao do seu projeto (que aps gerado ser tambm um
artefato Maven), as dependncias, repositrios adicionais, etc.

H um arquivo pom por projeto, mas ele pode herdar


con guraes de um parent pom, isto , como se houvesse um
projeto pai.

Ciclo de vida padro do Maven

O Maven possui um ciclo de vida padro. Cada passo do ciclo de


vida chamado de Goal e possui plugins espec cos. Os mais
importantes so:

validate : valida o projeto e se as informaes necessrias

para os prximos passos esto disponveis, como as


dependncias por exemplo.

compile : compila o cdigo-fonte.

test : executa os testes unitrios (JUnit, por exemplo).

package : empacota o cdigo compilado em um JAR, WAR,

etc.

integration-test : executa os testes de integrao.

install : adiciona o pacote gerado ao repositrio local,

assim outros projetos na mesma mquina podem usar essa


dependncia.

deploy : copia o pacote nal para o repositrio remoto,


disponibilizando-o para outros desenvolvedores e outros
projetos.

Os itens acima, nessa ordem, so passos comuns para gerao


de uma verso de qualquer sistema, no mesmo?

No Maven, voc pode con gurar detalhadamente cada um


desses passos e at incluir novos. Por exemplo, alguns
frameworks que geram cdigo-fonte usam um goal generate-
sources para fazer isso.

Alm disso, no necessrio executar todos os passos sempre.


Voc pode escolher qual deseja executar num determinado
momento, mas o Maven sempre executar todos os passos
anteriores.

Por exemplo, enquanto voc est desenvolvendo um mdulo, a


cada alterao pode executar o passo test para executar a
validao, compilao e ento os testes unitrios. Ento voc s
precisa executar os passos posteriores quando tiver concludo o
trabalho.

Para maiores informaes sobre o ciclo de vida, consulte a


documentao
(http://maven.apache.org/guides/introduction/introduction-to-
the-lifecycle.html).

Estrutura padro de um projeto Maven

A estrutura padro do projeto inclui boas prticas (como separar


as classes de teste das classes do sistema) e facilita aos novos
desenvolvedores encontrar o que eles querem, j que todos os
projetos seguiro uma estrutura semelhante.

Veja a seguir os principais diretrios utilizados:

src/main/java : aqui ca o cdigo-fonte do sistema ou


biblioteca.

src/main/resources : arquivos auxiliares do sistema, como

.properties , XMLs e con guraes.

src/main/webapp : se for uma aplicao web, os arquivos JSP,

HTML, JavaScript CSS vo aqui, incuindo o web.xml .

src/test/java : as classes com seus testes unitrios cam


aqui e so executadas automaticamente com JUnit e
TestNG. Outros frameworks podem exigir con gurao
adicional.

src/test/resources : arquivos auxiliares usados nos testes.

Voc pode ter properties e con guraes alternativas, por


exemplo.

pom.xml : o arquivo que concentra as informaes do seu

projeto.

target : o diretrio onde ca tudo que gerado, isto ,


onde vo parar os arquivos compilados, JARs, WARs,
JavaDoc, etc.

Para ver mais detalhes sobre a estrutura de diretrios do Maven,


consulte a documentao
(http://maven.apache.org/guides/introduction/introduction-to-
the-standard-directory-layout.html).

Usando o Maven em projetos j existentes

Voc pode ter cado desapontado com a estrutura anterior, pois


estava pensando em usar o Maven em um projeto que j
comeou, mas no quer ou no pode mudar a estrutura de
pastas atuais.

Saiba que o Maven exvel e permite alterar toda a


estrutura padro.

Por exemplo, comum usar a pasta src para os fontes, ao invs


de src/main/java . Para ajustar isso, basta adicionar uma tag
<sourceDirectory> dentro da tag <build> , assim:

<project>
...
<build>
<sourceDirectory>src</sourceDirectory>
...
</build>
...
</project>
No vou ir fundo nessa questo, mas se o leitor tiver um projeto
em condies semelhantes, sugiro uma leitura mais completa da
documentao, comeando com Using Maven When You Cant Use
the Conventions (http://maven.apache.org/guides/mini/guide-
using-one-source-directory.html).

claro que nem tudo to simples. Muitos projetos usam


estruturas to diferentes que se exige a refatorao desta
estrutura.

Benefcios do Maven
A adoo do Maven no desenvolvimento traz de imediato os
seguintes benefcios:

Centralizao das informaes

O Maven centraliza as informaes dos projetos no arquivo


pom.

Sendo assim, no preciso con gurar vrias ferramentas, build


scripts, servidores e IDEs durante o desenvolvimento. O Maven
segue o conceito DRY (Dont Repeat Yourself).

Alm disso, o Maven tambm disponibiliza formas de analisar o


projeto. Por exemplo, o goal dependency:analyze exibe as
dependncias declaradas que no esto sendo usadas e as
usadas via terceiros, mas no declaradas no pom.

Padronizao do ambiente de desenvolvimento

Atravs da especi cao do projeto, incluindo suas


caractersticas e dependncias, o Maven constri a estrutura
necessria do projeto, baixando automaticamente as verses
corretas das dependncias (JARs, por exemplo) de um
repositrio central ou de um repositrio privado (contendo
sistemas da empresa).

Voc no precisa entrar no site de cada biblioteca e framework


usado e ento fazer manualmente o download e adicionar os
jars no seu classpath.

Dessa forma, cada desenvolvedor consegue con gurar


rapidamente um ambiente para desenvolvimento com a
garantia de que esse ambiente igual ao dos outros
desenvolvedores.

Gerenciamento de dependncias

Como j mencionei, o Maven faz o download automtico de


dependncias para o projeto e os adiciona ao classpath do seu
projeto.

Cada dependncia pode ter tambm as suas prprias


dependncias. Elas so chamadas dependncias transitivas. O
Maven resolve essa rvore de dependncias e traz tudo o que
voc precisa.

Em alguns casos, podem haver problemas de con itos, no caso


da rvore de dependncias incluir verses diferentes de um
mesmo artefato. O Maven vem com mecanismos para resolver
isso.

Facilidade de compreenso do projeto

Ao usar a conveno de diretrios sugerida pelo Maven os


desenvolvedores tero mais facilidade em compreender a
estrutura do projeto, a nal todos os projetos seguiro uma
estrutura bsica de diretrios, como vimos anteriormente.

Automao
Automao

O Maven gerencia o ciclo de vida da aplicao. Aps con gurar


um projeto, voc ser capaz de executar comandos que vo
desde a compilao at a gerao de documentao (Javadoc) e
um site padro contendo informaes sobre o projeto.

Uma vez feita a con gurao necessria, o projeto pode ser


baixado e compilado sem nenhum esforo. Novas verses
podem ser geradas em servidores de Integrao Contnua e
testadas automaticamente sempre que necessrio.

Um alerta
Embora os tpicos anteriores tenham enumerado diversas
vantagens do uso do Maven, este no uma bala de prata, ou
seja, uma soluo mgica para o projeto.

Dependendo da complexidade do projeto, pode ser bem


complicado criar uma con gurao adequada para ao Maven.

Alm disso, o Maven no ir livr-lo de problemas como:

Incompatibilidade de dependncias

O projeto depende dos frameworks A e B. O framework A


depende a verso 1.0 da biblioteca C. O framework B depende
da verso 2.0 da biblioteca C.

O Maven no vai resolver sozinho isso, mas facilita muito a


resoluo do problema j que podemos usar as informaes do
mecanismo de resoluo de dependncias para identi car os
con itos.

Algumas tecnologias simplesmente no vo funcionar


bem com o Maven

Alguns autores de frameworks ou arquiteturas inventam o seu


prprio jeito de trabalhar. Isso signi ca que para usar o Maven
necessrio alguma adaptao, o que nem sempre trivial.

No entanto, possvel escrever plugins para o Maven que faam


o trabalho para voc. Geralmente a comunidade de cada
framework, se no os prprios autores, j tero resolvido esse
problema. Embora existam casos em que essas solues
acrescentem novas limitaes.

dio do Maven

A verdade que existe muita gente que odeia o Maven por ter
vivido experincias ruins com ele, principalmente no incio.
Infelizmente, no sei se este artigo ter o poder de cur-lo de
traumas passados ao tentar usar o Maven sem a devida
orientao.

No entanto, no deixe que isso in uencie voc neste momento.


Mesmo que no pretenda usar o Maven em seus projetos, vale a
pena conhec-lo. Voc pode ser obrigado a us-lo na empresa
ou mesmo num projeto opensource de que vai participar.

Se voc no gosta do Maven, tenha duas coisas em mente:

1. Existem vrias alternativas, desde scripts Ant at outras


ferramentas de resoluo de dependncias mais avanadas
como o Graddle (http://www.gradle.org/).

2. Embora algumas pessoas atinjam um excelente nvel de


produtividade sem o Maven, se considerarmos um contexto
mais amplo, como um projeto que com mais de meia dzia
de desenvolvedores, alguns deles novatos, o Maven pode
trazer mais vantagens que desvantagens se bem
con gurado por um desenvolvedor experiente.

Instalando o Maven
Acesse a pgina do Maven (http://maven.apache.org/) e clique
no item Download (http://maven.apache.org/download.cgi) do
menu.

A pgina disponibiliza diferentes verses para diferentes


ambientes. Baixe o arquivo da ltima verso de acordo com seu
sistema operacional. Destaquei na imagem a verso zip para
Windows que usarei neste exemplo:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/011.png)

A verso mais atual do Maven na data de criao deste tutorial


3.2.1. O pacote baixado nomeado apache-maven-3.2.1-bin.zip .
Veja o arquivo aberto no 7-Zip:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/021.png)

Descompacte o contedo para a pasta c:\starcode\ .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/031.png)

Con gura o resultado na imagem a seguir:


(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/041.png)

Con gurando o Maven


O Maven con gurado atravs do arquivo settings.xml que ca
no diretrio c:\starcode\apache-maven-3.2.1\conf .

Abra o arquivo usando um editor avanado, como o Notepad++


(http://notepad-plus-plus.org/). Voc vai ver que existem
diversos blocos de XML comentados com possveis
con guraes e explicaes sobre elas.

Em um ambiente simples voc no vai precisar mexer em muita


coisa. Porm, vamos ver alguns pontos mais importantes.

Proxy

muito comum precisarmos autenticar o acesso internet em


um Proxy quando estamos no trabalho. Procure a tag <proxy> , a
qual deve estar comentada no arquivo de con gurao. O
trecho o seguinte:

<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

Se voc tem um proxy na sua rede, mova o bloco acima para


fora do comentrio, ento substitua os parmetros de acordo
com seu ambiente. Mantenha a tag <proxy> dentro de
<proxies> .

Veja abaixo um exemplo de uso:

<proxies>
<proxy>
<id>proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.intranet.empresa.com</host>
<port>8080</port>
<nonProxyHosts>localhost,127.*,192.*</nonProxyHosts>
</proxy>
</proxies>

Local do repositrio
O Maven utiliza um diretrio local para baixar os artefatos da
internet. O diretrio padro ca dentro pasta do usurio, na
pasta .m2 . Um exemplo no Windows
c:\users\luiz\.m2\repository .

Entretanto, tenho o hbito de mudar esse diretrio para junto


de meus arquivos de desenvolvimento. Para isso, basta editar o
settings.xml , movendo a tag <localRepository> para fora do
comentrio e adicionando o caminho, por exemplo:

<localRepository>c:\starcode\apache-maven-3.2.1\repo</localRe
pository>

No se esquea de criar o diretrio especi cado caso o mesmo


no exista.

Con gurando as variveis de ambiente

Para usar o Maven em linha de comando voc deve adicionar o


caminho para os executveis ao PATH do ambiente. No
Windows, pressione Ctrl+Break para abrir a tela de informaes
do do sistema.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/05-con gurar-maven.png)

Clique na opo Configuraes avanadas do sistema , esquerda


da janela.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/06-con gurar-maven.png)

Na aba Avanado da tela de Propriedades do Sistema, clique


em Variveis de Ambiente... .
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/07-con gurar-maven.png)

Voc pode adicionar a varivel de ambiente apenas para o


usurio atual ou globalmente para todo o sistema. Faa o que
for melhor para o seu caso. Alguns ambientes corporativos
impedem o acesso con gurao de sistema por questes de
segurana, ento voc ter que con gurar apenas seu usurio.

Clique em Novo... e crie a varivel M2_HOME com o valor


apontando para o diretrio base do Maven. No nosso exemplo o
valor c:\starcode\apache-maven-3.2.1 .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/08-con gurar-maven.png)

Clique em OK para criar a varivel.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/09-con gurar-maven.png)

Agora vamos incluir o diretrio com os executveis do Maven ao


PATH . Localize a entrada, selecione-a e clique em Editar... .
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/10-con gurar-maven.png)

Adicione ao nal um ponto e vrgula e o caminho para a pasta


bin do Maven ( ;%M2_HOME%\bin ), assim:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/11-con gurar-maven.png)

Clique em OK para con rmar a edio e OK novamente para


con rmar as alteraes nas variveis do sistema.

Vamos ento testar a instalao. Abra o CMD (linha de


comando) e digite mvn -version . Voc deve ver algo como na
gura abaixo:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/12-con gurar-maven.png)

Se ocorreu algum problema, veri que se voc tem o Java


instalado e con gurado corretamente, incluindo as variveis de
ambiente JAVA_HOME e PATH incluindo o Java. Caso tenha
dvidas, acesse o artigo citado no incio sobre a instalao do
JDK.

Usando o Maven

Usando a instalao do Maven no Eclipse

Para integrar o Maven e Eclipse eu aconselho o plugin M2E. Note


que o M2E um plugin do Eclipse que faz integrao com o
Maven.
Existe tambm o Maven Eclipse Plugin, aquele onde se digita
eclipse:eclipse para gerar um projeto para o Eclipse. Este um
plugin do Maven que simplesmente gera os arquivos de
con gurao necessrios para a IDE. No confunda os dois.

A distribuio Eclipse for JEE Developers j vem com o plugin


M2E e uma instalao interna do Maven. Veja como instalar e
usar o Eclipse acessando o artigo citado no incio.

Se voc tem uma verso diferente do Eclipse, use o menu Help >
Eclipse Marketplace... , pesquise por M2E e instale o plugin.

Com o plugin instalado e o Eclipse aberto, acesse o menu Window


> Preferences... e v at a opo Maven > Installations .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/01-maven-eclipse.png)

Veja que j existe uma instalao embarcada, mas com uma


verso desatualizada. Vamos adicionar o nosso Maven.

Clique em Add... e selecione a pasta com a nossa instalao, no


caso: c:\starcode\apache-maven-3.2.1 .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/02-maven-eclipse.png)

Note que ele j encontrou nosso arquivo de con gurao.


V at o menu User Settings . H um warning l dizendo que a
con gurao do usurio no existe. Voc pode criar um outro
settings.xml na pasta indicada ou simplesmente use um
artifcio (que eu sempre uso), que de nir o mesmo arquivo da
con gurao global.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/03-maven-eclipse.png)

Caso no tenha entendido, o Maven possui um arquivo de


con gurao global que afeta diretamente a instalao e ca na
pasta conf . Entretanto, cada usurio do sistema pode ter um
arquivo prprio e sobrescrever as con guraes globais que ele
desejar. No entanto, se voc o nico usurio do computador,
no necessrio ter os dois arquivos.

Criando um projeto Maven simples no Eclipse

Com o Maven con gurado, vamos criar um novo projeto no


Eclipse. Acesse o menu File > New > Maven Project . Selecione a
opo Create a simple project (skip archetype selection) e
clique clique em Next > .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/01-projeto-simples.png)
Vamos preencher a identi cao do projeto, que nada mais do
que a identi cao de um artefato.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/02-projeto-simples.png)

O Group Id para o exemplo ser br.com.starcode e o Artifact


Id ser teste-maven-01 . A verso e o tipo de artefato (Packaging)
j devem estar preenchidos, ento simplesmente deixe como
est. O nome e a descrio so opcionais.

Clique em Finish para ver o projeto criado.

Note que ele ainda no est de nido com as con guraes de


um projeto Java, ento clique com o boto direito sobre o
projeto, acesse o menu Maven > Update Project... .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/03-projeto-simples.png)

Clique em OK para atualizar o projeto com as con guraes do


Maven e agora temos a estrutura caracterstica.
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/04-projeto-simples.png)

Adicionando manualmente uma dependncia

Agora vou ilustrar como podemos adicionar algumas


dependncias ao projeto. Acesse o site mvnrepository.com
(http://mvnrepository.com/), que contm um ndice das
dependncias disponveis no repositrio do Maven. Pesquise
por commons-lang .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/05-projeto-simples.png)

Selecione o item Apache Commons Lang , como indicado na imagem


abaixo:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/06-projeto-simples.png)

Clique sobre a ltima verso ( 3.3.2 na data em que escrevo o


artigo).
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/07-projeto-simples.png)

Selecione e copie a identi cao do artefato, conforme a


imagem abaixo:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/08-projeto-simples.png)

Agora volte ao Eclipse e clique duas vezes sobre o arquivo


pom.xml para edit-lo. Provavelmente o editor foi aberto no aba
Overview (veja abaixo do editor) com diversos campos e
informaes sobre o projeto.

Clique na aba pom.xml para mostrar o cdigo fonte.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/09-projeto-simples.png)

Adicione a tag <dependencies> logo abaixo da tag <description>


e cole o contedo do site dentro dela.

Dica: Pressione CTRL+A para selecionar todo o contedo do


arquivo e depois CTRL+I para indentar (tabular) o arquivo.
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/10-projeto-simples.png)

O contedo do pom.xml deve ser o seguinte:

<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 htt
p://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.starcode</groupId>
<artifactId>teste-maven-01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Teste Maven 01</name>
<description>Um teste de projeto simples com o maven</des
cription>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
</dependencies>
</project>

Salve o arquivo. O plugin M2E ir identi car a alterao, baixar


automaticamente a dependncia do repositrio central para o
seu repositrio local e adicion-la ao classpath do projeto.

Con ra a entrada Maven Dependencies na imagem a seguir:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/11-projeto-simples.png)

Pronto! Agora voc j pode usar qualquer classe da biblioteca


Apache Commons Lang
(http://commons.apache.org/proper/commons-lang/).

Fiz uma classe de exemplo ( File > New > Other... , selecione
Class ), com o seguinte contedo:
package br.com.starcode.testemaven01;

import org.apache.commons.lang3.StringUtils;

public class ClasseDeTeste {

public static void main(String[] args) {

System.out.println(StringUtils.capitalize("luiz"));

Executei o mtodo main clicando com o boto direito sobre a


classe, menu Run As > Java Application . Veja o resultado:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/12-projeto-simples.png)

Executando os passos (goals) do Maven

Vamos supor que estamos construindo uma nova biblioteca.


Precisaremos test-la (test), empacot-la (package) num jar e
distribu-la (deploy) para o uso de terceiros, no mesmo? O
Maven nos ajuda grandemente com esses passos naturais do
ciclo de vida de um projeto.

Vamos usar nosso projeto de exemplo e criar uma classe


utilitria chamada SuperUtil :

package br.com.starcode.testemaven01;

import org.apache.commons.lang3.StringEscapeUtils;

public class SuperUtil {

/**
* Possibilita exibir um texto contendo HTML no navegador
sem ataques XSS.
* @param html Entrada do usurio (pode ter HTML, mas no
deve ser renderizado, somente exibido)
* @return Texto sem posveis tags HTML
*/
public static String escapeHTML(String html) {
return StringEscapeUtils.escapeHtml4(html);
}

Veja no Eclipse:
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/01-executando-com-maven.png)

Vamos ainda criar um teste unitrio para nossa classe, as


primeiro temos que adicionar a dependncia do JUnit ao nosso
projeto. Para isso v at o site mvnrepository.com
(http://mvnrepository.com) e pesquise por junit . V at a
ltima verso
(http://mvnrepository.com/artifact/junit/junit/4.11), copie o
trecho do XML e adicione na seo de dependncias do seu
pom.xml .

Adicione tambm a tag <scope>test</scope> esta dependncia,


para informar ao Maven que ela somente ser usada no teste.
Sim, o Maven esperto e no incluir, por exemplo, o JUnit na
pasta WEB-INF/lib de uma aplicao web.

Veja como cou o 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 htt
p://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.starcode</groupId>
<artifactId>teste-maven-01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Teste Maven 01</name>
<description>Um teste de projeto simples com o maven</des
cription>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Ao salvar o arquivo o Maven deve baixar o JUnit


automaticamente.

Agora crie a classe de teste SuperUtilTest em src/test/java :


package br.com.starcode.testemaven01;

import org.junit.Assert;
import org.junit.Test;

public class SuperUtilTest {

@Test
public void escapeHTMLTest() {

String escapedHtml = SuperUtil.escapeHTML("<script>al


ert(1);</script>");
String expected = "&lt;script&gt;alert(1);&lt;/script
&gt;";
Assert.assertEquals(expected, escapedHtml);

Caso queira executar o teste j, clique com o boto direito sobre


a classe e acesse o menu Run As > JUnit Test :

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/02-executando-com-maven.png)

Con ra o resultado:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/03-executando-com-maven.png)

Sucesso!

Imagine agora que tenhamos criado diversas classes e mtodos.


Temos uma verso beta de nossa biblioteca.

Vamos testar o projeto usando o Maven. Clique no projeto com


o boto direito e na opo Run As > Maven test :
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/04-executando-com-maven.png)

Na primeira execuo o Maven vai baixar diversos plugins e


dependncias internas para a execuo do projeto. Aguarde um
pouco e con ra o resultado de todos os testes do projeto:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/05-executando-com-maven.png)

Ok, agora vamos gerar um JAR do projeto. Clique no projeto com


o boto direito e na opo Run As > Maven build... . Isso
necessrio porque no uma opo pronta para o passo
package . V at o campo Goals e digite package .
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/06-executando-com-maven.png)

Clique em Run e aguarde.

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/07-executando-com-maven.png)

Se voc observar o log no Console notar que os testes foram


executados. Lembra que eu disse que os passos anteriores
sempre so executados? Espero que agora tenha entendido
melhor.

Note a ltima linha antes das palavras BUILD SUCCESS . Ali est o
caminho do Jar gerado. Ele foi gerado dentro da pasta target do
projeto.

Selecione a pasta target e Pressione F5 para atualiz-la. Abra-a


clicando na seta esquerda e con ra:
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/08-executando-com-maven.png)

Vamos agora executar o install , isto , instalar o jar no


repositrio local. Clique no projeto com o boto direito e na
opo Run As > Maven install . Aguarde um pouco e veja o
resultado:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/09-executando-com-maven.png)

As duas ltimas linhas antes da mensagem de sucesso


demonstram os locais onde o Jar e o seu arquivo POM foram
instalados:


[INFO] Installing
D:\starcode\workspaces\workspace_demo\teste-maven-
01\target\teste-maven-01-0.0.1-SNAPSHOT.jar to
c:\starcode\apache-maven-
3.2.1\repo\br\com\starcode\teste-maven-01\0.0.1-
SNAPSHOT\teste-maven-01-0.0.1-SNAPSHOT.jar

[INFO] Installing
D:\starcode\workspaces\workspace_demo\teste-maven-
01\pom.xml to c:\starcode\apache-maven-
3.2.1\repo\br\com\starcode\teste-maven-01\0.0.1-
SNAPSHOT\teste-maven-01-0.0.1-SNAPSHOT.pom

Vamos abrir o diretrio do repositrio local e dar uma


olhadinha:
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/10-executando-com-maven.png)

Agora voc pode usar este artefato em outros projetos na sua


mquina local, adicionando a seguinte dependncia:

<dependency>
<groupId>br.com.starcode</groupId>
<artifactId>teste-maven-01</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

Qualquer projeto com essa dependncia vai usar o nosso jar


gerado e, automaticamente, incluir tambm o jar do Apache
Commons Lang que de nimos em nosso projeto.

Analisando as dependncias

Vamos aprender a analisar as dependncias de um projeto.

Abra novamente o seu arquivo pom.xml e v at a aba Dependency


Hierarchy . Voc deve estar vendo isso:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/01-maven-dependencies.png)

Abaixo, mais um exemplo de dependncias extrado da minha


biblioteca T-Rex (https://github.com/utluiz/t-rex):
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/maven-dependency-hierarchy.png)

Usando o Maven em linha de comando

Tudo o que zemos anteriormente atravs da IDE pode ser feito


via linha de comando. importante entender isso porque
quando o projeto for compilado em um servidor de Integrao
Contnua, por exemplo, ele no contar com as facilidades do
plugin que usamos.

Irei ilustrar a seguir a execuo do goal install via linha de


comando.

O primeiro passo abrir o CMD e ir at o diretrio do projeto.


Ento basta digitar o comando maven install .

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/11-executando-com-maven.png)

Con gura o resultado da execuo:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/13-executando-com-maven.png)

Pronto!

Explicando: ns adicionamos o Maven ao path do sistema,


lembra? maven o nome do executvel do Maven e install o
goal que voc deseja executar. Tambm h usar o executvel
mvn , que apenas um atalho para evitar digitar mais caracteres.

Da mesma forma, poderamos executar mvn test ou mvn


package como zemos nos tpicos acima via menu do Eclipse
para ativar os respectivos Goals.
Um goal muito importante ainda no mencionado o clean ,
que serve para limpar todos os arquivos gerados da pasta
target . Ele muito importante para limpar eventual sujeira de
geraes anteriores.

Quando estiver tendo problemas estranhos ou for gerar uma


verso o cial, sempre use comandos comandos como mvn
clean install ou mvn clean deploy para garantir uma gerao
limpa.

Note que voc pode especi car vrios goals simultaneamente


para o Maven executar. Nos exemplos acima, o Maven vai
primeiro limpar o projeto e depois executar o install ou o
deploy .

Passando parmetros para o Maven

H ainda situaes onde precisamos ajustar a execuo do


Maven atravs de parmetros.

Por exemplo, em certas ocasies queremos gerar um jar ou war


para testes, porm o build do Maven falha porque um teste
unitrio terminou em erro.

Para resolver essa situao sem excluir o teste unitrio,


possvel con gurar o Maven para pular os testes com o
seguinte comando:

mvn -DskipTests clean install

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/14-executando-com-maven.png)

Con gura o resultado da execuo:

(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/15-executando-com-maven.png)

O mesmo resultado pode ser obtido no Eclipse clicando com o


boto direito sobre o projeto e indo no menu Run As > Maven
build... , digitando clean install no campo Goals e
selecionando a opo Skip Tests .

Distribuindo seu projeto

Os prximos passos incluiriam disponibilizar o jar para outros


desenvolvedores atravs do goal deploy . Em um deploy, o
Maven envia seu jar para um Repositrio Remoto. Entretanto,
isso exige vrias con guraes adicionais e as devidas
permisses.

Disponibilizar seu projeto no repositrio central do Maven exige


que seu projeto seja opensource e que voc solicite as
permisses necessrias. Caso voc queira fazer isso, siga os
passos disponveis neste link
(http://Sonatype%20OSS%20Maven%20Repository%20Usage%20Guide).

J dentro de uma empresa geralmente se con gura um servidor


para conter um repositrio com os artefatos da empresa.
Existem aplicaes gratuitas que podem ser usadas para isso,
como o Artifactory
(http://www.jfrog.com/home/v_artifactory_opensource_overview)
ou o Nexus (http://www.sonatype.org/nexus/).

As con guraes necessrias para o deploy num repositrio


remoto esto fora do escopo deste artigo, mas existem vrias
referncias disponveis na web.

Leitura adicional
Usar o Maven para desenvolver projetos pessoais
relativamente fcil e este artigo cobre o necessrio para isso.
Entretanto, no deixe de estudar o material o cial e, aos poucos,
ir entendendo os mecanismos do Maven para us-lo em
projetos maiores:

Site o cial do Maven (http://maven.apache.org/)

Maven in 5 Minutes
(http://maven.apache.org/guides/getting-started/maven-in-
ve-minutes.html)

Maven Getting Started Guide


(http://maven.apache.org/guides/getting-
started/index.html)

Consideraes nais
Usar o Maven pode ser confuso a princpio, mas traz diversos
benefcios.

Em curto prazo ele ajuda voc a gerenciar as dependncias e


organizar seus projetos.

Em mdio prazo voc poder ter um controle muito bom de


verses e releases, alm de um padro maduro para seus
projetos.

Em longo prazo o Maven possibilitar a Integrao Contnua de


seus projetos. Ser necessrio um esforo considervel, mas
seus projetos sero compilados e testados automaticamente.
Com uma quantidade de testes adequada para garantir que as
funcionalidades existentes continuam funcionando e as novas
vo funcionar, voc pode ter verses sendo geradas todos os
dias ou a cada commit!

Nesse ponto, cruzamos com conceitos de TDD, Agile e outros.


Mas exatamente este o motivo pelo qual ferramentas de
automao como o Maven so importantes.

Espero que o leitor tenha compreendido seu funcionamento


bsico e possa evoluir daqui em diante para um melhor
aproveitamento da automao em benefcio da qualidade e da
agilidade.

automao (http://luizricardo.org/tag/automacao/)

integrao contnua (http://luizricardo.org/tag/integracao-continua/)


maven (http://luizricardo.org/tag/maven/)

tutorial (http://luizricardo.org/tag/tutorial/)

Luiz Ricardo
(http://luizricardo.org/author/utluizgmail-
com/)
Ex-engenheiro, arquiteto, agilista, arteso, agora dedica-se
a desenvolver software bem.

Share!

Facebook 32 (http://luizricardo.org/2014/06/instalando-con gurando-e-


usando-o-maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/?
share=facebook&nb=1)

Reddit (http://luizricardo.org/2014/06/instalando-con gurando-e-usando-o-


maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/?
share=reddit&nb=1)

Twitter (http://luizricardo.org/2014/06/instalando-con gurando-e-usando-o-


maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/?
share=twitter&nb=1)

LinkedIn 26 (http://luizricardo.org/2014/06/instalando-con gurando-e-usando-


o-maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/?
share=linkedin&nb=1)

Google (http://luizricardo.org/2014/06/instalando-con gurando-e-usando-o-


maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/?share=google-
plus-1&nb=1)

Mais

ANTERIOR PRXIMA

Instalando e con gurando o Eclipse Problemas de compatibilidade de


Kepler no linux Ubuntu verses no Java: especi cando a
(http://luizricardo.org/2014/06/instalando- verso do JDK para compilao
e-con gurando-o-eclipse-kepler-no- (http://luizricardo.org/2014/07/problemas-
linux-ubuntu/) de-compatibilidade-de-versoes-no-
java-especi cando-a-versao-do-jdk-
para-compilacao/)

Related

(http://luizricardo.org/2014/07/problemas-
(http://luizricardo.org/2015/05/deploy-(http://luizricardo.org/2013/10/eclipse-
(http://luizricardo.org/2013/11/instalando-
de-compatibilidade-de- e-integracao- acabando-com-alguns- e-con gurando-o-java-
versoes-no-java- continua/)Deploy e Integrao erros-de-validacao- development-kit-7-para-
especi cando-a-versao- Contnua desnecessarios/)Eclipse: desenvolvimento/)Instalando
do-jdk-para- (http://luizricardo.org/2015/05/deploy-acabando com alguns erros de e Con gurando o Java
compilacao/)Problemas de e-integracao-continua/) validao desnecessrios Development Kit 7 para
compatibilidade de verses no (http://luizricardo.org/2013/10/eclipse-Desenvolvimento
Java: especi cando a verso do acabando-com-alguns-erros-de- (http://luizricardo.org/2013/11/instalando-
JDK para compilao validacao-desnecessarios/) e-con gurando-o-java-
(http://luizricardo.org/2014/07/problemas- development-kit-7-para-
de-compatibilidade-de-versoes- desenvolvimento/)
no-java-especi cando-a-versao-
do-jdk-para-compilacao/)

77 Comentrios State Of The Art


1 Entrar
77 Comentrios State Of The Art Entrar

Ordenar por Mais votados


Recomendar 9 Compartilhar

Participe da discusso...

FAZER LOGIN COM

OU REGISTRE-SE NO DISQUS ?

Nome

Anderson Araujo 3 meses atrs


Boa tarde Luiz Ricardo! Tem dois dias que estou tentando fazer um curso (meia boca pelo que vi at aqui) e os caras vo
metendo o pau em matria mas no explicam nada sobre o ambiente de desenvolvimento. Pesquisei muito at chegar no
seu artigo e queria te parabenizar de verdade, excelente, finalmente vi o projeto Maven sem dar erros, nem to acreditando.
No deixe de fazer o que voc faz, ajuda muita gente. Deus abenoe sua vida, seus projetos, sua carreira. Abrao!
1 Responder Compartilhar

Luiz Ricardo Autor > Anderson Araujo 3 meses atrs


Valeu, Anderon! timo saber que o artigo ajudou.

Abrao e fique com Deus.


Responder Compartilhar

Alex Villanova 4 meses atrs


Muito bom!! Nao encontrei nenhum tao bem detalhado assim. Obrigado!!
1 Responder Compartilhar

Daniel Moura 5 meses atrs


Cara Muito bom, est de parabns!!
1 Responder Compartilhar

Flavio Roncat 8 meses atrs


Muito bem escrito. Parabens!
1 Responder Compartilhar

Luiz Ricardo Autor > Flavio Roncat 8 meses atrs


Obrigado! :)
Responder Compartilhar

Matos Oliveira 10 meses atrs


Excelente artigo. Obrigado Luiz. Abs.
1 Responder Compartilhar

Luiz Ricardo Autor > Matos Oliveira 9 meses atrs


Valeu, obrigado.
Responder Compartilhar

Pedro Henrrique um ano atrs


Luiz , voc o cara kkk muito obrigado por disponibilizar esse contedo, foi de grande ajuda.
Estou entusiasmado para aprender mais sobre o maven.
1 Responder Compartilhar

Rogrio Cardin um ano atrs


vc tem algum tutorial sobre Spring ROO?
1 Responder Compartilhar

Luiz Ricardo Autor > Rogrio Cardin um ano atrs


Eu no tenho (para falar a verdade, no gosto muito dessa ferramenta), mas voc pode encontrar alguns em
Portugus como:

- http://www.ibm.com/develope...
- http://www.devmedia.com.br/...
Responder Compartilhar

Rogrio Cardin um ano atrs


Parabns pelo EXCELENTE artigo, muito bom mesmo!!
1 Responder Compartilhar

Douglas Junior um ano atrs


A varivel M2_HOME no deve apontar para a posta do Repositrio? E a varivel MAVEN_HOME apontar pasta a pasta do
A varivel M2_HOME no deve apontar para a posta do Repositrio? E a varivel MAVEN_HOME apontar pasta a pasta do
Maven?
1 Responder Compartilhar

Luiz Ricardo Autor > Douglas Junior um ano atrs


Nenhuma varivel precisa apontar para a pasta do repositrio. Esse diretrio criado automaticamente na sua pasta
de usurio, dentro do subdiretrio ".m2". Voc pode, entretanto, mudar isso na configurao do Maven, no arquivo
"settings.xml", mas no recomendado.

Quando s variveis de ambiente, no importa muito o nome, o importante que o PATH do sistema consiga ver a
pasta "bin" do Maven para que voc consiga executar os comandos a partir de qualquer diretrio.

Os nomes "M2_HOME" e "MAVEN_HOME" so convenes para o diretrio do maven em suas verses 1 e 2,


respectivamente, e alguns programas usavam essas variveis para encontrar o Maven no seu computador. Porm a
verdade que praticamente isso no faz diferena, pois a maioria das IDEs ou j bem com o Maven ou vai permitir
voc especificar o diretrio a partir do qual vai us-lo.

Abrao.
Responder Compartilhar

Douglas Junior > Luiz Ricardo um ano atrs


Quando eu digo repositrio estou me referindo ao diretrio ".m2".

Depois eu acabei fazendo mais testes aqui e descobri que as variveis realmente no fazem diferena.

Obrigado pela resposta, abrao!


Responder Compartilhar

Adriano Octaclio Pinheiro um ano atrs


cara muito bom seu tutorial me ajudou bastante, quebrou o gelo que havia entre eu e o maven kkk
1 Responder Compartilhar

Vander Elme um ano atrs


Parabns!!!
1 Responder Compartilhar

Willians Martins um ano atrs


cara! voce mandou muito bem com este artigo
1 Responder Compartilhar

Rafael um ano atrs


Cara, simplesmente parabens!

Estava perdido com relacao ao uso do maven. E seu topico conseguiu matar todas as duvidas e muito mais.

Continue com este otimo trabalho.

Abracos!
1 Responder Compartilhar

Tiago Nogueira 2 anos atrs


timo artigo.
1 Responder Compartilhar

Luiz Ricardo > Tiago Nogueira 2 anos atrs


Obrigado! :D
Responder Compartilhar

Murillo Goulart 23 dias atrs


Excelente artigo! Parabns Luiz Ricado!
Responder Compartilhar

Camelo Rodovirio 6 meses atrs


Que artigo fantstico, obrigado pelo trabalho de compartilhar todas essas informaes de maneira to simples e direta!
Responder Compartilhar

Fernando Oliveira um ano atrs


Luiz, excelente tutorial.
Fazia tempo que no via um tutorial to didtico!

Para transformar esse seu exemplo num projeto Web e ainda utilizar o Spring MVC eu faria de que maneira?

[]'s
Responder Compartilhar

Luiz Ricardo > Fernando Oliveira um ano atrs


Luiz Ricardo > Fernando Oliveira um ano atrs
Ol, Fernando.

Infelizmente no tenho tempo de fazer um tutorial detalhado no momento, mas voc pode usar como referncia
vrios exemplos que usei para ministrar aulas. Eles esto disponveis no meu GitHub:

https://github.com/utluiz/spring-examples

Abrao e boa sorte! :)


Responder Compartilhar

Michael um ano atrs


timo artigo. Parabns.
Responder Compartilhar

bruno 2 anos atrs


otimo post
Responder Compartilhar

Bruno Yuri 2 anos atrs


Parabns, muito bom o contedo!
Responder Compartilhar

Fabrcio Alencar 2 anos atrs


Muito bom o seu artigo, voc est de parabns.

Como eu consigo atualizar o meu Java pelo Maven? Sei que tem um plugin para colocar no Maven, mas, no estou
conseguindo.
Responder Compartilhar

Luiz Ricardo > Fabrcio Alencar 2 anos atrs


Ol Fabrcio.

O Maven no serve para atualizar o Java. O que voc deve ter visto se refere a especificar a verso do Java no seu
pom.xml de forma que a compilao e os testes executem corretamente.
Responder Compartilhar

Vinicius Francisco 2 anos atrs


Simplesmente, perfeito!!!

Obrigado pelo excelente material.


Responder Compartilhar

Luiz Ricardo > Vinicius Francisco 2 anos atrs


Obrigado! :D
Responder Compartilhar

Paulo Roberto Moniz 2 anos atrs


Luiz , muito o bom o post, bem detalhado , passo a passo. Est de parabns. Ajuda bastante aos iniciantes como eu.
V em frente!
Paulo Moniz
Responder Compartilhar

Pedro Gonalves 2 anos atrs


Luiz, muito obrigado pelo tutorial. Me ajudou muito.
Responder Compartilhar

Daniel Albino 2 anos atrs


Cara, vlw pelo post!
No manjava absolutamente nada de Maven e queria configur-lo aqui na minha mquina.
Graas ao seu post consegui.
Vlw mesmo brder!!! \o/
Responder Compartilhar

Luiz Ricardo > Daniel Albino 2 anos atrs


Bom ter ajudado, Daniel!

Abrao! :D
Responder Compartilhar

Paulo Gimenez 2 anos atrs


Parabns Luiz Ricardo. Muito bom. Simples, rpido e objetivo.
Responder Compartilhar

Luiz Ricardo > Paulo Gimenez 2 anos atrs


Ol, Paulo. Obrigado! :D
Responder Compartilhar

Elone 2 anos atrs


Material muito util, ajudou muito.
Responder Compartilhar

Luiz Ricardo > Elone 2 anos atrs


Legal ter ajudado! Abrao! :)
Responder Compartilhar

Alexandre CAmilo 2 anos atrs


Luiz, surgiu uma dvida, que pode parecer boba, sobre o package (No encontrei documentao que esclarece isso): as
dependncias podem ser includas no target do meu projeto? Ou eu tenho que fazer isso manualmente? Eu usei a segunda
opo, e s consegui fazer minha aplicao localizar os jars de que ela depende, colocando-os na pasta ext, da instalao
do JRE. Desde j agradeo sua ateno
Responder Compartilhar

Luiz Ricardo > Alexandre CAmilo 2 anos atrs


Ol, Alexandre.

No sei se entendi corretamente sua dvida. As dependncias do Maven devem ser declaradas no arquivo pom.xml.
Se h dependncias que no esto em algum repositrio Maven e voc precisa incluir jars individualmente, ento
voc deve usar uma dependedncia com escopo system e especificar o caminho para o jar. Veja como fazer isso na
documentao.

Existem outras alternativas, tais como criar seu prprio repositrio Maven na sua empresa, que o ideal para que os
sistemas da empresa fiquem devidamente versionados e publicados.

Outra alternativa instalar suas dependncias no repositrio local. Se voc tem um projeto que depende de outro,
use o comando mvn install no outro para compilar e instalar. Depois o primeiro projeto ser capaz de us-lo. Se for
um jar de terceiros, d para usar o comando mvn install:install-file para instalar o jar localmente. Veja como fazer
isso aqui.

Note que, embora seja possvel usar jars isolados, isso tem efeitos colaterais indesejados. O mais importante que
isso quebra todo o propsito do Maven de gerenciar as dependncias e garantir que os ambientes esto iguais, com
as mesmas verses de dependncias e tambm vai exigir configurao manual de cada ambiente. Portanto, colocar
seus jars em um repositrio na sua empresa sempre maios indicado do que configurar "manualmente" no sistema
ver mais

Responder Compartilhar

Daniel 2 anos atrs


Excelente!
Responder Compartilhar

Mattos 2 anos atrs


Muito boa a explicao me ajudou mto a entender um pouco o maven, agora vou me aprofunda mais no assunto vlw \m/
Responder Compartilhar

Luiz Ricardo > Mattos 2 anos atrs


Valeu, Mattos! Bom ter ajudado. :)
Responder Compartilhar

Marlon 2 anos atrs


Rapaz, parabns pela postagem. Muito boa sua explicao, me ajudo bastante. Muito obrigado!
Responder Compartilhar

Luiz Ricardo > Marlon 2 anos atrs


Obrigado, Marlon. Bom ter ajudado! :D
Responder Compartilhar

Juclio 2 anos atrs


Cara no poderia deixar de agradecer.

Obrigado !
Responder Compartilhar

Alexandre Camilo 2 anos atrs


Luiz, eu procurava por um tutorial que explicasse para que serve o Maven e como implant-lo. Ao contrrio de outros
materiais que j li, que me deixava desmotivado em tentar implantar essa ferramenta em meu projeto, por serem de difcil
compreenso, estou agora seguro em utiliz-lo. Seu material muito didtico e realmente explica, passo a passo, como
compreenso, estou agora seguro em utiliz-lo. Seu material muito didtico e realmente explica, passo a passo, como
fazer. Parabns, ganhou mais um seguidor.
Responder Compartilhar

Luiz Ricardo > Alexandre Camilo 2 anos atrs


Obrigado, bom ter ajudado.

Abrao! :)
Responder Compartilhar

Carregar mais comentrios

TAMBM EM STATE OF THE ART

SQL Server: comparando duas bases de dados com Infraestrutura como Cdigo
uma query 1 comentrio 8 meses atrs
3 comentrios um ano atrs Diego Ribeiro Excelente, timo artigo. Curti muito!
Ademir Moretto Vlw amigo eu descobri o erro.obrigado
pelo retorno

Tecnologia em crise Script de Gerao de Carga de Dados (Oracle e SQL


2 comentrios um ano atrs Server)
Jonathan Rodrigues Ol Luis, tudo bem ? Esse um 1 comentrio um ano atrs
daqueles posts que nos fazem parar nossa rotina e pensar Cleyton Santana Amigo, onde esta a verso para Oracle?
sobre nossas vidas,

Inscreva-se d Adicione o Disqus no seu siteAdicionar DisqusAdicionar Privacidade

(http://creativecommons.org/licenses/by-sa/3.0/deed.pt_BR) O blog State of the Ar t (http://luizricardo.org) de Luiz Ricardo

(http://luizricardo.org/sobre) licenciado sob uma Licena Creative Commons (http://creativecommons.org/licenses/by-sa/3.0/deed). Copie, compar tihe e
modi que, apenas cite a fonte.

Você também pode gostar