Escolar Documentos
Profissional Documentos
Cultura Documentos
org/)
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:
Conceitos importantes
Artefato (artifact)
Repositrio local
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.
Arquivo POM
etc.
projeto.
<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).
Benefcios do Maven
A adoo do Maven no desenvolvimento traz de imediato os
seguintes benefcios:
Gerenciamento de dependncias
Automao
Automao
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.
Incompatibilidade de dependncias
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.
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.
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/011.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/021.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/031.png)
Proxy
<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>
<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 .
<localRepository>c:\starcode\apache-maven-3.2.1\repo</localRe
pository>
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/05-con gurar-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/06-con gurar-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/08-con gurar-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/09-con gurar-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/11-con gurar-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/12-con gurar-maven.png)
Usando o Maven
Se voc tem uma verso diferente do Eclipse, use o menu Help >
Eclipse Marketplace... , pesquise por M2E e instale o plugin.
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/01-maven-eclipse.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/02-maven-eclipse.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/03-maven-eclipse.png)
(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)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/03-projeto-simples.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/05-projeto-simples.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/06-projeto-simples.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/08-projeto-simples.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/09-projeto-simples.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/11-projeto-simples.png)
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;
System.out.println(StringUtils.capitalize("luiz"));
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/12-projeto-simples.png)
package br.com.starcode.testemaven01;
import org.apache.commons.lang3.StringEscapeUtils;
/**
* 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)
import org.junit.Assert;
import org.junit.Test;
@Test
public void escapeHTMLTest() {
(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!
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/05-executando-com-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/07-executando-com-maven.png)
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.
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/09-executando-com-maven.png)
[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
<dependency>
<groupId>br.com.starcode</groupId>
<artifactId>teste-maven-01</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Analisando as dependncias
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/01-maven-dependencies.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/11-executando-com-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/13-executando-com-maven.png)
Pronto!
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/14-executando-com-maven.png)
(http://luizricardo.org/wordpress/wp-content/upload-
les/2014/06/15-executando-com-maven.png)
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:
Maven in 5 Minutes
(http://maven.apache.org/guides/getting-started/maven-in-
ve-minutes.html)
Consideraes nais
Usar o Maven pode ser confuso a princpio, mas traz diversos
benefcios.
automao (http://luizricardo.org/tag/automacao/)
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!
Mais
ANTERIOR PRXIMA
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/)
Participe da discusso...
OU REGISTRE-SE NO DISQUS ?
Nome
- http://www.ibm.com/develope...
- http://www.devmedia.com.br/...
Responder Compartilhar
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.
Abrao.
Responder Compartilhar
Depois eu acabei fazendo mais testes aqui e descobri que as variveis realmente no fazem diferena.
Estava perdido com relacao ao uso do maven. E seu topico conseguiu matar todas as duvidas e muito mais.
Abracos!
1 Responder Compartilhar
Para transformar esse seu exemplo num projeto Web e ainda utilizar o Spring MVC eu faria de que maneira?
[]'s
Responder Compartilhar
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
Como eu consigo atualizar o meu Java pelo Maven? Sei que tem um plugin para colocar no Maven, mas, no estou
conseguindo.
Responder Compartilhar
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
Abrao! :D
Responder Compartilhar
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
Obrigado !
Responder Compartilhar
Abrao! :)
Responder Compartilhar
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
(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.