Instalando Maven

Embed Size (px)

DESCRIPTION

instalando maven

Citation preview

Instalando, configurando e usando o Maven para gerenciar suas dependncias e seus projetos Java

Link: http://luizricardo.org/2014/06/instalando-configurando-e-usando-o-maven-para-gerenciar-suas-dependencias-e-seus-projetos-java/Este artigo uma introduo aoMaven, 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 Configurando o Java Development Kit 7 para Desenvolvimento Instalando, Configurando e Usando o Eclipse KeplerO 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. Unificar 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 importantesArtefato (artifact)Um artefato geralmente um arquivo JAR que fica no repositrio do Maven, mas pode ser de outro tipo.Cada artefato identificado atravs dos seguintes elementos: Grupo: como o endereo do site ao contrrio, comobr.com.starcode,org.apache,com.google,com.ibm, etc. Identificador nico de artefato: geralmente o nome do projeto. Ele deve ser nico por grupo. Nmero de verso: a verso do projeto, como1.4.2ou3.0. Se houver o sufixo-SNAPSHOT(0.0.1-SNAPSHOT, por exemplo) significa que o projeto est em desenvolvimento e o pacote pode ser alterado. Tipo do projeto: jar, war, ear, pom (projeto de configurao). Classificador: identificao opcional para diferenciar variaes da mesma verso. Por exemplo, se o programa compilado para diferentes verses do Java podemos usar os classificadoresjdk4ejdk6. Se h variaes especficas para Sistemas Operacionais, podemos ter os classificadoreslinuxewindows.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 oinstalldo Maven. Continue lendo para entender o que isso.O repositrio possui uma estrutura padro onde o Maven consegue encontrar os artefatos atravs da identificao do mesmo.Repositrio remotoConsiste 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 configurando no Maven, mas algumas empresas criam seus prprios repositrios. Inclusive voc pode criar o seu instalando oArtifactoryouNexusnum servidor.Quando adicionamos esses repositrios remotos em nossa instalao do Maven, ele capaz de localizar e baixar automaticamente as dependncias atravs da identificao do artefato.Arquivo POMO arquivo pom (pom.xml) a configurao principal do Maven e estar presente em todo projeto. Nele voc declara a identificao 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 configuraes de umparent pom, isto , como se houvesse um projeto pai.Ciclo de vida padro do MavenO Maven possui um ciclo de vida padro. Cada passo do ciclo de vida chamado deGoale possui plugins especficos. 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 final 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 configurar detalhadamente cada um desses passos e at incluir novos. Por exemplo, alguns frameworks que geram cdigo-fonte usam umgoalgenerate-sourcespara 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 passotestpara executar a validao, compilao e ento os testes unitrios. Ento voc s precisa executar os testes posteriores quando tiver concludo o trabalho.Para maiores informaes sobre o ciclo de vida, consulte adocumentao.Estrutura padro de um projeto MavenA 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 fica o cdigo-fonte do sistema ou biblioteca. src/main/resources: arquivos auxiliares do sistema, como.properties, XMLs e configuraes. src/main/webapp: se for uma aplicao web, os arquivos JSP, HTML, JavaScript CSS vo aqui, incuindo oweb.xml. src/test/java: as classes com seus testes unitrios ficam aqui e so executadas automaticamente com JUnit e TestNG. Outros frameworks podem exigir configurao adicional. src/test/resources: arquivos auxiliares usados nos testes. Voc pode ter properties e configuraes alternativas, por exemplo. pom.xml: o arquivo que concentra as informaes do seu projeto. target: o diretrio onde fica 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 adocumentao.Usando o Maven em projetos j existentesVoc pode ter ficado 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 flexvel e permite alterar toda a estrutura padro.Por exemplo, comum usar a pastasrcpara os fontes, ao invs desrc/main/java. Para ajustar isso, basta adicionar uma tagdentro da tag, assim:

... src ... ...

No vou ir fundo nessa questo, mas se o leitor tiver um projeto em condies semelhantes, sugiro uma leitura mais completa da documentao, comeando comUsing Maven When You Cant Use the Conventions. claro que nem tudo to simples. Muitos projetos usam estruturas to diferentes que se exige a refatorao desta estrutura.Benefcios do MavenA adoo do Maven no desenvolvimento traz de imediato os seguintes benefcios:Centralizao das informaesO Maven centraliza as informaes dos projetos no arquivo pom.Sendo assim, no preciso configurar vrias ferramentas,build scripts, servidores e IDEs durante o desenvolvimento. O Maven segue o conceitoDRY(Dont Repeat Yourself).Alm disso, o Maven tambm disponibiliza formas de analisar o projeto. Por exemplo, ogoaldependency:analyzeexibe as dependncias declaradas que no esto sendo usadas e as usadas via terceiros, mas no declaradas no pom.Padronizao do ambiente de desenvolvimentoAtravs da especificao 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 seuclasspath.Dessa forma, cada desenvolvedor consegue configurar rapidamente um ambiente para desenvolvimento com a garantia de que esse ambiente igual ao dos outros desenvolvedores.Gerenciamento de dependnciasComo j mencionei, o Maven faz o download automtico de dependncias para o projeto e os adiciona aoclasspathdo seu projeto.Cada dependncia pode ter tambm as suas prprias dependncias. Elas so chamadasdependncias transitivas. O Maven resolve essa rvore de dependncias e traz tudo o que voc precisa.Em alguns casos, podem haver problemas de conflitos, 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 projetoAo usar a conveno de diretrios sugerida pelo Maven os desenvolvedores tero mais facilidade em compreender a estrutura do projeto, afinal todos os projetos seguiro uma estrutura bsica de diretrios, como vimos anteriormente.AutomaoO Maven gerencia o ciclo de vida da aplicao. Aps configurar 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 configurao 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 alertaEmbora 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 configurao adequada para ao Maven.Alm disso, o Maven no ir livr-lo de problemas como:Incompatibilidade de dependnciasO 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 identificar os conflitos.Algumas tecnologias simplesmente no vo funcionar bem com o MavenAlguns autores de frameworks ou arquiteturas inventam o seu prprio jeito de trabalhar. Isso significa 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 MavenA 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 influencie 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 projetoopensourcede 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 oGraddle.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 configurado por um desenvolvedor experiente.Instalando o MavenAcesse a pgina doMavene clique no itemDownloaddo 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 versozippara Windows que usarei neste exemplo:

A verso mais atual do Maven na data de criao deste tutorial 3.2.1. O pacote baixado nomeadoapache-maven-3.2.1-bin.zip. Veja o arquivo aberto no 7-Zip:

Descompacte o contedo para a pastac:\starcode\.

Configura o resultado na imagem a seguir:

Configurando o MavenO Maven configurado atravs do arquivosettings.xmlque fica no diretrioc:\starcode\apache-maven-3.2.1\conf.Abra o arquivo usando um editor avanado, como oNotepad++. Voc vai ver que existem diversos blocos de XML comentados com possveis configuraes 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, a qual deve estar comentada no arquivo de configurao. O trecho o seguinte:

optional true http proxyuser proxypass proxy.host.net 80 local.net|some.host.com

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 tagdentro de.Veja abaixo um exemplo de uso:

proxy true http proxy.intranet.empresa.com 8080 localhost,127.*,192.*

Local do repositrioO Maven utiliza um diretrio local para baixar os artefatos da internet. O diretrio padro fica 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 osettings.xml, movendo a tagpara fora do comentrio e adicionando o caminho, por exemplo:c:\starcode\apache-maven-3.2.1\repoNo se esquea de criar o diretrio especificado caso o mesmo no exista.Configurando as variveis de ambientePara usar o Maven em linha de comando voc deve adicionar o caminho para os executveis aoPATHdo ambiente. No Windows, pressioneCtrl+Breakpara abrir a tela de informaes do do sistema.

Clique na opoConfiguraes avanadas do sistema, esquerda da janela.

Na abaAvanadoda tela dePropriedades do Sistema, clique emVariveis de Ambiente....

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 configurao de sistema por questes de segurana, ento voc ter que configurar apenas seu usurio.Clique emNovo...e crie a varivelM2_HOMEcom o valor apontando para o diretrio base do Maven. No nosso exemplo o valor c:\starcode\apache-maven-3.2.1.

Clique emOKpara criar a varivel.

Agora vamos incluir o diretrio com os executveis do Maven aoPATH. Localize a entrada, selecione-a e clique emEditar....

Adicione ao final um ponto e vrgula e o caminho para a pastabindo Maven (;%M2_HOME%\bin), assim:

Clique emOKpara confirmar a edio eOKnovamente para confirmar as alteraes nas variveis do sistema.Vamos ento testar a instalao. Abra oCMD(linha de comando) e digitemvn -version. Voc deve ver algo como na figura abaixo:

Se ocorreu algum problema, verifique se voc tem o Java instalado e configurado corretamente, incluindo as variveis de ambienteJAVA_HOMEePATHincluindo o Java. Caso tenha dvidas, acesse o artigo citado no incio sobre a instalao do JDK.Usando o MavenUsando a instalao do Maven no EclipsePara 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 oMaven Eclipse Plugin, aquele onde se digitaeclipse:eclipsepara gerar um projeto para o Eclipse. Este umplugin do Mavenque simplesmente gera os arquivos de configurao necessrios para a IDE. No confunda os dois.A distribuioEclipse for JEE Developersj 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 menuHelp > Eclipse Marketplace..., pesquise porM2Ee instale o plugin.Com o plugin instalado e o Eclipse aberto, acesse o menuWindow > Preferences...e v at a opoMaven > Installations.

Veja que j existe uma instalao embarcada, mas com uma verso desatualizada. Vamos adicionar o nosso Maven.Clique emAdd...e selecione a pasta com a nossa instalao, no caso:c:\starcode\apache-maven-3.2.1.

Note que ele j encontrou nosso arquivo de configurao.V at o menuUser Settings. H umwarningl dizendo que a configurao do usurio no existe. Voc pode criar um outrosettings.xmlna pasta indicada ou simplesmente use um artifcio (que eu sempre uso), que definir o mesmo arquivo da configurao global.

Caso no tenha entendido, o Maven possui um arquivo de configurao global que afeta diretamente a instalao e fica na pastaconf. Entretanto, cada usurio do sistema pode ter um arquivo prprio e sobrescrever as configuraes 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 EclipseCom o Maven configurado, vamos criar um novo projeto no Eclipse. Acesse o menuFile > New > Maven Project. Selecione a opoCreate a simple project (skip archetype selection)e clique clique emNext >.

Vamos preencher a identificao do projeto, que nada mais do que a identificao de um artefato.

OGroup Idpara o exemplo serbr.com.starcodee oArtifact Idserteste-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 emFinishpara ver o projeto criado.Note que ele ainda no est definido com as configuraes de um projeto Java, ento clique com o boto direito sobre o projeto, acesse o menuMaven > Update Project....

Clique emOKpara atualizar o projeto com as configuraes do Maven e agora temos a estrutura caracterstica.

Adicionando manualmente uma dependnciaAgora vou ilustrar como podemos adicionar algumas dependncias ao projeto. Acesse o sitemvnrepository.com, que contm um ndice das dependncias disponveis no repositrio do Maven. Pesquise porcommons-lang.

Selecione o itemApache Commons Lang, como indicado na imagem abaixo:

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

Selecione e copie a identificao do artefato, conforme a imagem abaixo:

Agora volte ao Eclipse e clique duas vezes sobre o arquivopom.xmlpara edit-lo. Provavelmente o editor foi aberto no abaOverview(veja abaixo do editor) com diversos campos e informaes sobre o projeto.Clique na abapom.xmlpara mostrar o cdigo fonte.

Adicione a taglogo abaixo da tage cole o contedo do site dentro dela.Dica:PressioneCTRL+Apara selecionar todo o contedo do arquivo e depoisCTRL+Ipara indentar (tabular) o arquivo.

O contedo dopom.xmldeve ser o seguinte:

4.0.0 br.com.starcode teste-maven-01 0.0.1-SNAPSHOT Teste Maven 01 Um teste de projeto simples com o maven org.apache.commons commons-lang3 3.3.2

Salve o arquivo. O plugin M2E ir identificar a alterao, baixar automaticamente a dependncia do repositrio central para o seu repositrio local e adicion-la aoclasspathdo projeto.Confira a entradaMaven Dependenciesna imagem a seguir:

Pronto! Agora voc j pode usar qualquer classe da bibliotecaApache Commons Lang.Fiz uma classe de exemplo (File > New > Other..., selecioneClass), 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 mtodomainclicando com o boto direito sobre a classe, menuRun As > Java Application. Veja o resultado:

Executando os passos (goals) do MavenVamos supor que estamos construindo uma nova biblioteca. Precisaremostest-la(test),empacot-la(package) num jar edistribu-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 chamadaSuperUtil: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:

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 sitemvnrepository.come pesquise porjunit. V at altima verso, copie o trecho do XML e adicione na seo de dependncias do seupom.xml.Adicione tambm a tagtest 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 pastaWEB-INF/libde uma aplicao web.Veja como ficou opom.xml:

4.0.0 br.com.starcode teste-maven-01 0.0.1-SNAPSHOT Teste Maven 01 Um teste de projeto simples com o maven org.apache.commons commons-lang3 3.3.2 junit junit 4.11 test

Ao salvar o arquivo o Maven deve baixar o JUnit automaticamente.Agora crie a classe de testeSuperUtilTestemsrc/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("alert(1);"); String expected = ""; Assert.assertEquals(expected, escapedHtml);

}

}Caso queira executar o teste j, clique com o boto direito sobre a classe e acesse o menuRun As > JUnit Test:

Confira o resultado:

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 opoRun As > Maven test:

Na primeira execuo o Maven vai baixar diversos plugins e dependncias internas para a execuo do projeto. Aguarde um pouco e confira o resultado de todos os testes do projeto:

Ok, agora vamos gerar um JAR do projeto. Clique no projeto com o boto direito e na opoRun As > Maven build.... Isso necessrio porque no uma opo pronta para o passopackage. V at o campoGoalse digitepackage.

Clique emRune aguarde.

Se voc observar o log noConsolenotar 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 palavrasBUILD SUCCESS. Ali est o caminho do Jar gerado. Ele foi gerado dentro da pastatargetdo projeto.Selecione a pastatargete PressioneF5para atualiz-la. Abra-a clicando na seta esquerda e confira:

Vamos agora executar oinstall, isto , instalar o jar no repositrio local. Clique no projeto com o boto direito e na opoRun As > Maven install. Aguarde um pouco e veja o resultado:

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.pomVamos abrir o diretrio do repositrio local e dar uma olhadinha:

Agora voc pode usar este artefato em outros projetos na sua mquina local, adicionando a seguinte dependncia:

br.com.starcode teste-maven-01 0.0.1-SNAPSHOT

Qualquer projeto com essa dependncia vai usar o nosso jar gerado e, automaticamente, incluir tambm o jar do Apache Commons Lang que definimos em nosso projeto.Analisando as dependnciasVamos aprender a analisar as dependncias de um projeto.Abra novamente o seu arquivopom.xmle v at a abaDependency Hierarchy. Voc deve estar vendo isso:

Abaixo, mais um exemplo de dependncias extrado da minha bibliotecaT-Rex:

Usando o Maven em linha de comandoTudo o que fizemos 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 dogoalinstallvia linha de comando.O primeiro passo abrir oCMDe ir at o diretrio do projeto. Ento basta digitar o comandomaven install.

Configura o resultado da execuo:

Pronto!Explicando: ns adicionamos o Maven aopathdo sistema, lembra?maven o nome do executvel do Maven einstall ogoalque voc deseja executar. Tambm h usar o executvelmvn, que apenas um atalho para evitar digitar mais caracteres.Da mesma forma, poderamos executarmvn testoumvn packagecomo fizemos nos tpicos acima via menu do Eclipse para ativar os respectivosGoals.Umgoalmuito importante ainda no mencionado oclean, que serve para limpar todos os arquivos gerados da pastatarget. Ele muito importante para limpar eventual sujeira de geraes anteriores.Quando estiver tendo problemas estranhos ou for gerar uma verso oficial, sempre use comandos comandos comomvn clean installoumvn clean deploypara garantir uma gerao limpa.Note que voc pode especificar vriosgoalssimultaneamente para o Maven executar. Nos exemplos acima, o Maven vai primeiro limpar o projeto e depois executar oinstallou odeploy.Passando parmetros para o MavenH 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 obuilddo Maven falha porque um teste unitrio terminou em erro.Para resolver essa situao sem excluir o teste unitrio, possvel configurar o Maven para pular os testes com o seguinte comando:mvn -DskipTests clean install

Configura o resultado da execuo:

O mesmo resultado pode ser obtido no Eclipse clicando com o boto direito sobre o projeto e indo no menuRun As > Maven build..., digitandoclean installno campoGoalse selecionando a opoSkip Tests.Distribuindo seu projetoOs prximos passos incluiriam disponibilizar o jar para outros desenvolvedores atravs dogoaldeploy. Em umdeploy, o Maven envia seu jar para um Repositrio Remoto. Entretanto, isso exige vrias configuraes adicionais e as devidas permisses.Disponibilizar seu projeto no repositrio central do Maven exige que seu projeto sejaopensourcee que voc solicite as permisses necessrias. Caso voc queira fazer isso, siga ospassos disponveis neste link.J dentro de uma empresa geralmente se configura um servidor para conter um repositrio com os artefatos da empresa. Existem aplicaes gratuitas que podem ser usadas para isso, como oArtifactoryou oNexus.As configuraes necessrias para odeploynum repositrio remoto esto fora do escopo deste artigo, mas existem vrias referncias disponveis na web.Leitura adicionalUsar o Maven para desenvolver projetos pessoais relativamente fcil e este artigo cobre o necessrio para isso. Entretanto, no deixe de estudar o material oficial e, aos poucos, ir entendendo os mecanismos do Maven para us-lo em projetos maiores: Site oficial do Maven Maven in 5 Minutes Maven Getting Started GuideConsideraes finaisUsar 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 ereleases, 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 cadacommit!Nesse ponto, cruzamos com conceitos de TDD,Agilee 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.