SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Edgar Dantas 
http://edgardantas.blogspot.com.br/
Maven é uma ferramenta para construir, 
gerenciar e implantar projetos Java
Objetivos 
● Tornar o processo de construção fácil 
● Fornecer um sistema de construção uniforme : project 
object model (POM) 
● Prover informações mais claras sobre o projeto 
● Diretrizes para as melhores práticas de 
desenvolvimento 
● Fácil atualização de componentes (Dependências)
Arquivo de configuração (POM) 
Efetivamente responde aos questionamentos; 
O que, Como e Onde
Dependência 
● Uma das características mais importantes do Maven é 
o gerenciamento de dependência. 
● Com repositório central que cresce cada vez mais, 
praticamente podemos encontrar qualquer componente 
que o nosso projeto dependa (54.430 artefatos). 
● Basta informar a dependência no arquivo de 
configuração e o sistema se encarrega de verificar a 
compatibilidade e baixar as libs. 
http://search.maven.org
Projeto padrão => Arquetipo
Preparando o Ambiente 
● Baixar 
http://maven.apache.org/download.cgi 
● Variáveis de ambiente 
JAVA_HOME = <path para jdk 1.5 ou superior> 
M2_HOME = <path para diretório do Maven> 
M2 = %M2_HOME%bin 
MAVEN_OPTS (Opcional) = -Xmx512m ... 
Java no PATH = %JAVA_HOME%bin 
Maven no PATH = %M2% 
● Teste do ambiente 
java -version 
mvn -v
Plugin para o Eclipse 
http://www.eclipse.org/m2e/ 
● É recomendado que se use a versão instalada no 
lugar da que vem embarcada no Plugin.
Arquetipos Maven 
● maven-archetype-quickstart 
Projeto java simples 
● maven-archetype-webapp 
Projeto container web java (Plugin Jetty embarcado) 
Existem vários outros arquetipos que podem ser 
facilmente pesquisados pelo plugin do eclipse
Criando um projeto 
Linha de Comando: 
mvn archetype:generate 
-DgroupId=br.edu.ifrn.tads 
-DartifactId=mteste 
-DarchetypeArtifactId=maven-archetype-webapp 
-DinteractiveMode=false 
Sobre os parâmetros: 
archetype:generate : plugin:objetivo 
groupId : grupo (ideia de pacotes do 
java) 
artifacctId : id do projeto 
archetypeArtifactId : id do arquetipo
Sobre o código gerado 
Princípio básico do Maven “Convenção sobre Configuração” 
● Código fonte em ${basedir}/src/main/java 
● Recursos em ${basedir}/src/main/resources. 
● Testes em ${basedir}/src/test, 
● Projeto produz JAR 
● Compilar para ${basedir}/target/classes e cria um dstribuível JAR 
em ${basedir}/target.
Configuração de plugin necessária para projeto Web
Projeto de Exemplo 
● Para facilitar a compreensão do arquivo de 
configuração, foi criado um projeto de 
exemplo que esta hospedado no GitHub 
https://github.com/edgardantas/webapp-maven-jetty
Construindo / Instalando 
● Compilação e instalação 
mvn install 
● Instação limpa 
mvn clean install 
● Executar um servidor web 
mvn jetty:run
Acrescentar JAR ao repositório 
A maior parte das bibliotecas livres estão nos repositórios 
do maven, contudo, para os casos que não existe, os 
JARs podem ser adcionados ao repositório local 
mvn install:install-file 
-Dfile=sqljdbc4.jar 
-DgroupId=com.microsoft.sqlserver 
-DartifactId=sqljdbc4 
-Dversion=3.0 
-Dpackaging=jar
Livros grátis (Sonatype) 
http://www.sonatype.com/Support/Books/
Referência 
● http://maven.apache.org/index.html 
● http://www.sonatype.com/Support/Books/ 
● http://blog.caelum.com.br/processo-de-build-com-o-maven/

Weitere ähnliche Inhalte

Was ist angesagt?

Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.jsJoel Rodrigues
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
Offline apps Using Ionic Framework and PouchDB
Offline apps  Using Ionic Framework and PouchDBOffline apps  Using Ionic Framework and PouchDB
Offline apps Using Ionic Framework and PouchDBAlvaro Viebrantz
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivoVinicius Reis
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!José Barbosa
 
Diego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci
 
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel  - Core web vitals e WordPressWordCamp Floripa 2021 - Daniel  - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPressWordCamp Floripa
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com PolymerStefan Horochovec
 
Lucas Mazza: Bower
Lucas Mazza: BowerLucas Mazza: Bower
Lucas Mazza: BoweriMasters
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1 Edgar Dantas
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpressDaniel Paz
 

Was ist angesagt? (20)

Primeiros passos no Vue.js
Primeiros passos no Vue.jsPrimeiros passos no Vue.js
Primeiros passos no Vue.js
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
Offline apps Using Ionic Framework and PouchDB
Offline apps  Using Ionic Framework and PouchDBOffline apps  Using Ionic Framework and PouchDB
Offline apps Using Ionic Framework and PouchDB
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Vue.js - o framework progressivo
Vue.js - o framework progressivoVue.js - o framework progressivo
Vue.js - o framework progressivo
 
Curso AngularJS - Parte 1
Curso AngularJS - Parte 1Curso AngularJS - Parte 1
Curso AngularJS - Parte 1
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
 
Diego Narducci - React + Angular
Diego Narducci - React + AngularDiego Narducci - React + Angular
Diego Narducci - React + Angular
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel  - Core web vitals e WordPressWordCamp Floripa 2021 - Daniel  - Core web vitals e WordPress
WordCamp Floripa 2021 - Daniel - Core web vitals e WordPress
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
React Native na globo.com
React Native na globo.comReact Native na globo.com
React Native na globo.com
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com Polymer
 
Angular js
Angular jsAngular js
Angular js
 
Lucas Mazza: Bower
Lucas Mazza: BowerLucas Mazza: Bower
Lucas Mazza: Bower
 
Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpress
 
Mean Stack
Mean StackMean Stack
Mean Stack
 

Andere mochten auch

Andere mochten auch (6)

Introdução ao maven
Introdução ao mavenIntrodução ao maven
Introdução ao maven
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Maven 3, Sonar e Hudson
Maven 3, Sonar e HudsonMaven 3, Sonar e Hudson
Maven 3, Sonar e Hudson
 
Aula maven
Aula   mavenAula   maven
Aula maven
 
Validando Formulários com AngularJS
Validando Formulários com AngularJSValidando Formulários com AngularJS
Validando Formulários com AngularJS
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 

Ähnlich wie Maven: Guia completo para construção e gerenciamento de projetos Java

Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Jocsa Rosendo
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: IntroduçãoJugVale
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do MavenAllan Alves
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação mavenAndré Justi
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
001 cesep - turma java
001   cesep - turma java001   cesep - turma java
001 cesep - turma javaJunior Souza
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation EvolvedMarcelo Diniz
 

Ähnlich wie Maven: Guia completo para construção e gerenciamento de projetos Java (20)

Maven 2
Maven 2Maven 2
Maven 2
 
Maven introdução Muito Rápida
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?Maven e Nexus. O que são essas ferramentas?
Maven e Nexus. O que são essas ferramentas?
 
Apache maven
Apache mavenApache maven
Apache maven
 
Plugin Maven no Eclipse
Plugin Maven no EclipsePlugin Maven no Eclipse
Plugin Maven no Eclipse
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Apresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache MavenApresentacao de Introdução ao Apache Maven
Apresentacao de Introdução ao Apache Maven
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Maven - Aula 01
Maven - Aula 01Maven - Aula 01
Maven - Aula 01
 
Tutorial de instalação do Maven
Tutorial de instalação do MavenTutorial de instalação do Maven
Tutorial de instalação do Maven
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Maven
MavenMaven
Maven
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
001 cesep - turma java
001   cesep - turma java001   cesep - turma java
001 cesep - turma java
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Build Automation Evolved
Build Automation EvolvedBuild Automation Evolved
Build Automation Evolved
 

Maven: Guia completo para construção e gerenciamento de projetos Java

  • 2. Maven é uma ferramenta para construir, gerenciar e implantar projetos Java
  • 3. Objetivos ● Tornar o processo de construção fácil ● Fornecer um sistema de construção uniforme : project object model (POM) ● Prover informações mais claras sobre o projeto ● Diretrizes para as melhores práticas de desenvolvimento ● Fácil atualização de componentes (Dependências)
  • 4.
  • 5. Arquivo de configuração (POM) Efetivamente responde aos questionamentos; O que, Como e Onde
  • 6. Dependência ● Uma das características mais importantes do Maven é o gerenciamento de dependência. ● Com repositório central que cresce cada vez mais, praticamente podemos encontrar qualquer componente que o nosso projeto dependa (54.430 artefatos). ● Basta informar a dependência no arquivo de configuração e o sistema se encarrega de verificar a compatibilidade e baixar as libs. http://search.maven.org
  • 7. Projeto padrão => Arquetipo
  • 8. Preparando o Ambiente ● Baixar http://maven.apache.org/download.cgi ● Variáveis de ambiente JAVA_HOME = <path para jdk 1.5 ou superior> M2_HOME = <path para diretório do Maven> M2 = %M2_HOME%bin MAVEN_OPTS (Opcional) = -Xmx512m ... Java no PATH = %JAVA_HOME%bin Maven no PATH = %M2% ● Teste do ambiente java -version mvn -v
  • 9. Plugin para o Eclipse http://www.eclipse.org/m2e/ ● É recomendado que se use a versão instalada no lugar da que vem embarcada no Plugin.
  • 10. Arquetipos Maven ● maven-archetype-quickstart Projeto java simples ● maven-archetype-webapp Projeto container web java (Plugin Jetty embarcado) Existem vários outros arquetipos que podem ser facilmente pesquisados pelo plugin do eclipse
  • 11. Criando um projeto Linha de Comando: mvn archetype:generate -DgroupId=br.edu.ifrn.tads -DartifactId=mteste -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false Sobre os parâmetros: archetype:generate : plugin:objetivo groupId : grupo (ideia de pacotes do java) artifacctId : id do projeto archetypeArtifactId : id do arquetipo
  • 12. Sobre o código gerado Princípio básico do Maven “Convenção sobre Configuração” ● Código fonte em ${basedir}/src/main/java ● Recursos em ${basedir}/src/main/resources. ● Testes em ${basedir}/src/test, ● Projeto produz JAR ● Compilar para ${basedir}/target/classes e cria um dstribuível JAR em ${basedir}/target.
  • 13. Configuração de plugin necessária para projeto Web
  • 14. Projeto de Exemplo ● Para facilitar a compreensão do arquivo de configuração, foi criado um projeto de exemplo que esta hospedado no GitHub https://github.com/edgardantas/webapp-maven-jetty
  • 15. Construindo / Instalando ● Compilação e instalação mvn install ● Instação limpa mvn clean install ● Executar um servidor web mvn jetty:run
  • 16. Acrescentar JAR ao repositório A maior parte das bibliotecas livres estão nos repositórios do maven, contudo, para os casos que não existe, os JARs podem ser adcionados ao repositório local mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=3.0 -Dpackaging=jar
  • 17. Livros grátis (Sonatype) http://www.sonatype.com/Support/Books/
  • 18. Referência ● http://maven.apache.org/index.html ● http://www.sonatype.com/Support/Books/ ● http://blog.caelum.com.br/processo-de-build-com-o-maven/