Maven em 10 minutos

13,986 views

Published on

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
13,986
On SlideShare
0
From Embeds
0
Number of Embeds
4,784
Actions
Shares
0
Downloads
0
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide
  • Maven 3
  • Processo de desenvolvimentopodeserumagrandefonte de desperdício
  • Velocidadeaumentaconformeosdesperdíciosvãosendoeliminados
  • Quempode me dizer o queé?
  • Quempode me dizer o queé?
  • Instalaçãoem 4 passos: DDDD
  • Surgimento da tabelaASCII em 1963. Falar um poucosobre a história
  • Surgimento da tabelaASCII em 1963. Falar um poucosobre a história
  • Surgimento da tabelaASCII em 1963. Falar um poucosobre a história
  • Surgimento da tabelaASCII em 1963. Falar um poucosobre a história
  • Surgimento da tabelaASCII em 1963. Falar um poucosobre a história
  • Digite: mvn –version
  • Criandoseuprimeiroprojeto
  • Como vocêsfazemparacriar um projeto novo em Java? E se eutedisserque o Maven criaprojetospormeio de um mecanismoautomático?
  • Archetypes
  • mvnarchetype:generate
  • Escopo das dependências
  • Estrutura de diretórios
  • Estrutura de diretórios
  • Project Object Model – POM.xml
  • Centralizatodas as configurações do projetocomotipo de empacotamento, dependências,compilação e versionamento.
  • Gestão de dependências
  • Onde as dependênciasficamarmazenadas?
  • Conceito de repositório
  • Repositório Local
  • Escopo das dependências
  • Ciclo de vida
  • Ciclo de vida
  • Ciclo de vida
  • Ciclo de vida
  • Ciclo de vida
  • Ciclo de vida
  • Maven em 10 minutos

    1. 1. Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br Em 10 minutos!
    2. 2. http://www.slideshare.net/rodrigobranas
    3. 3. @rodrigobranas rodrigo.branas@gmail.com http://www.agilecode.com.brFormação AcadêmicaCiências da Computação – UFSCGerenciamento de Projetos - FGVCertificaçõesSCJA, SCJP, SCJD, SCWCD, SCBCD, PMP, MCP e CSM
    4. 4. Rodrigo Branas – rodrigo.branas@gmail.com10 anos de experiência na plataforma Java1000 horas em sala de aulaMais de 50 palestras em eventosLíder da área de desenvolvimento na GenneraAutor da revista Java MagazinePalestranteInstrutor da Academia Java e Agile da GlobalcodeCriador dos treinamentos de Clean Code, Selenium eMaven da Agile CodeTrabalhou com as empresas: EDS, HP, GM, Citibank,OnCast, Globalcode, V.Office, Dígitro, Softplan, Unimed,Suntech, Vale do Rio Doce, Senai, NET.
    5. 5. Processo de desenvolvimento pode ser uma fonte de desperdício...
    6. 6. Se sente pesado?
    7. 7. Que tipos de desperdício existem noseu ambiente de desenvolvimento?
    8. 8. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas
    9. 9. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?
    10. 10. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?• Modificar a versão de uma biblioteca
    11. 11. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?• Modificar a versão de uma biblioteca• Gerar uma versão da aplicação para ser colocada em produção
    12. 12. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?• Modificar a versão de uma biblioteca• Gerar uma versão da aplicação para ser colocada em produção• Transferência de conhecimento
    13. 13. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?• Modificar a versão de uma biblioteca• Gerar uma versão da aplicação para ser colocada em produção• Transferência de conhecimento• Deu problema! É fácil voltar a versão?
    14. 14. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?• Modificar a versão de uma biblioteca• Gerar uma versão da aplicação para ser colocada em produção• Transferência de conhecimento• Deu problema! É fácil voltar a versão?• Entender código ruim
    15. 15. Desperdícios purosAtividades que poderiam ser reduzidas ou eliminadas• Configurar o projeto em uma maquina nova, em quanto tempo estamos prontos para desenvolver?• Modificar a versão de uma biblioteca• Gerar uma versão da aplicação para ser colocada em produção• Transferência de conhecimento• Deu problema! É fácil voltar a versão?• Entender código ruim• Corrigir bugs
    16. 16. Para que serve o Maven?
    17. 17. MavenGerenciamento de configuração do seu projeto
    18. 18. MavenGerenciamento de configuração do seu projeto Compilação o código fonte
    19. 19. MavenGerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes
    20. 20. MavenGerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes Empacotar o projeto para distribuição
    21. 21. MavenGerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes Empacotar o projeto para distribuição Realizar a gestão de dependências
    22. 22. MavenGerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes Empacotar o projeto para distribuição Realizar a gestão de dependências Versionamento em diferentes SCM’s
    23. 23. MavenGerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes Empacotar o projeto para distribuição Realizar a gestão de dependências Versionamento em diferentes SCM’sDeployment em diversos servidores de aplicação
    24. 24. Maven Gerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes Empacotar o projeto para distribuição Realizar a gestão de dependências Versionamento em diferentes SCM’s Deployment em diversos servidores de aplicaçãoGeração de documentação (parecido com uma wiki)
    25. 25. Maven Gerenciamento de configuração do seu projeto Compilação o código fonte Compilar e executar os códigos de testes Empacotar o projeto para distribuição Realizar a gestão de dependências Versionamento em diferentes SCM’s Deployment em diversos servidores de aplicaçãoGeração de documentação (parecido com uma wiki) Verificar a qualidade do seu código
    26. 26. O céu é o limite!
    27. 27. Processo de instalação da ferramenta
    28. 28. MavenProcesso de Instalação
    29. 29. Maven Processo de InstalaçãoDownload em http://maven.apache.org
    30. 30. Maven Processo de InstalaçãoDownload em http://maven.apache.org Descompactar a ferramenta
    31. 31. Maven Processo de Instalação Download em http://maven.apache.org Descompactar a ferramentaDefinir a variável de ambiente M2_HOME apontando para o diretório de instalação
    32. 32. Maven Processo de Instalação Download em http://maven.apache.org Descompactar a ferramentaDefinir a variável de ambiente M2_HOME apontando para o diretório de instalação Atualizar a variável de ambiente PATH apontando para o diretório M2_HOME/bin
    33. 33. mvn --version
    34. 34. Criando seu primeiro projeto
    35. 35. Archetypes
    36. 36. mvn archetype:generate
    37. 37. MavenCriando seu primeiro projeto
    38. 38. MavenCriando seu primeiro projeto mvn archetype:generate
    39. 39. MavenCriando seu primeiro projeto mvn archetype:generateEscolhar um tipo de projeto
    40. 40. Maven Criando seu primeiro projeto mvn archetype:generate Escolhar um tipo de projetoDefinir as 3 informações fundamentais que identificamum artefato no Maven, como se fosse uma certidão de nascimento
    41. 41. Quem é você?
    42. 42. Maven3 informações fundamentais
    43. 43. Maven 3 informações fundamentaisgroupId: identificação relacionada a empresa ouorganização desenvolvedora do artefato. Essainformação vai gerar a estrutura de pacote.
    44. 44. Maven 3 informações fundamentaisgroupId: identificação relacionada a empresa ouorganização desenvolvedora do artefato. Essainformação vai gerar a estrutura de pacote.artifactId: identificação do artefato
    45. 45. Maven 3 informações fundamentaisgroupId: identificação relacionada a empresa ouorganização desenvolvedora do artefato. Essainformação vai gerar a estrutura de pacote.artifactId: identificação do artefatoversion: versão do artefato
    46. 46. mvn eclipse:eclipse
    47. 47. Estrutura de diretórios
    48. 48. Promovendo a padronização
    49. 49. MavenEstrutura de diretórios
    50. 50. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fonte
    51. 51. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fontesrc/main/resources: Arquivos de configuração
    52. 52. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fontesrc/main/resources: Arquivos de configuraçãosrc/main/webapp: Estrutura Web
    53. 53. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fontesrc/main/resources: Arquivos de configuraçãosrc/main/webapp: Estrutura Websrc/test/java: Onde fica todo o código de teste
    54. 54. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fontesrc/main/resources: Arquivos de configuraçãosrc/main/webapp: Estrutura Websrc/test/java: Onde fica todo o código de testesrc/test/resources: Arquivos de configuração
    55. 55. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fontesrc/main/resources: Arquivos de configuraçãosrc/main/webapp: Estrutura Websrc/test/java: Onde fica todo o código de testesrc/test/resources: Arquivos de configuraçãosrc/site: Arquivos de documentação
    56. 56. Maven Estrutura de diretóriossrc/main/java: Onde fica todo o código fontesrc/main/resources: Arquivos de configuraçãosrc/main/webapp: Estrutura Websrc/test/java: Onde fica todo o código de testesrc/test/resources: Arquivos de configuraçãosrc/site: Arquivos de documentaçãotarget: Pacotes gerados e fontes compilados
    57. 57. Coração do projeto – POM.xml
    58. 58. Centraliza todas as configurações
    59. 59. Arquivo pom.xml1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. </project>
    60. 60. Gestão de Dependências
    61. 61. Aonde ficam armazenadas as dependências?
    62. 62. Entendendo os repositórios
    63. 63. Arquivo pom.xml1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. </project>
    64. 64. Arquivo pom.xml1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <dependencies>7. </dependencies>8. </project>
    65. 65. Arquivo pom.xml1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <dependencies>7. <dependency>8. </dependency>9. </dependencies>10. </project>
    66. 66. Arquivo pom.xml1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <dependencies>7. <dependency>8. <groudId>org.seleniumhq.selenium</groupId>9. <artifactId>selenium-java</artifactId>10. <version>2.24.1</version>11. </dependency>12. </dependencies>13. </project>
    67. 67. mvn eclipse:eclipse
    68. 68. Ciclo de Vida
    69. 69. MavenCiclo de Vida
    70. 70. Maven Ciclo de Vidacompile: Compila o código fonte.
    71. 71. Maven Ciclo de Vidacompile: Compila o código fonte.test: Compila e executa os testes.
    72. 72. Maven Ciclo de Vidacompile: Compila o código fonte.test: Compila e executa os testes.package: Empacota o código fonte compilado noformato especificado.
    73. 73. Maven Ciclo de Vidacompile: Compila o código fonte.test: Compila e executa os testes.package: Empacota o código fonte compilado noformato especificado.install: Instala o projeto no repositório local
    74. 74. Maven Ciclo de Vidacompile: Compila o código fonte.test: Compila e executa os testes.package: Empacota o código fonte compilado noformato especificado.install: Instala o projeto no repositório local.deploy: Instala o projeto no repositório remoto.
    75. 75. Maven Ciclo de Vidacompile: Compila o código fonte.test: Compila e executa os testes.package: Empacota o código fonte compilado noformato especificado.install: Instala o projeto no repositório local.deploy: Instala o projeto no repositório remoto.clean: Apaga o diretório target
    76. 76. Maven Ciclo de Vidacompile: Compila o código fonte.test: Compila e executa os testes.package: Empacota o código fonte compilado noformato especificado.install: Instala o projeto no repositório local.deploy: Instala o projeto no repositório remoto.clean: Apaga o diretório targetsite: Gera a documentação do projeto
    77. 77. mvn clean package
    78. 78. Plugins
    79. 79. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. </project>
    80. 80. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <build>7. </build>8. </project>
    81. 81. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <build>7. <plugins>8. </plugins>9. </build>10. </project>
    82. 82. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <build>7. <plugins>8. <plugin>9. </plugin>10. </plugins>11. </build>12. </project>
    83. 83. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <build>7. <plugins>8. <plugin>9. <groupId>org.codehaus.mojo</groupId>10. <artifactId>jboss-maven-plugin</artifactId>11. <version>1.5.0</version>12. </plugin>13. </plugins>14. </build>15. </project>
    84. 84. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <build>7. <plugins>8. <plugin>9. <groupId>org.codehaus.mojo</groupId>10. <artifactId>jboss-maven-plugin</artifactId>11. <version>1.5.0</version>12. <configuration>13. </configuration>14. </plugin>15. </plugins>16. </build>17. </project>
    85. 85. 1. <project>2. <modelVersion>4.0.0</modelVersion>3. <groupId>br.com.rodrigobranas</groudId>4. <artifactId>my-app</artifactId>5. <version>1.0</version>6. <build>7. <plugins>8. <plugin>9. <groupId>org.codehaus.mojo</groupId>10. <artifactId>jboss-maven-plugin</artifactId>11. <version>1.5.0</version>12. <configuration>13. <jbossHome>/usr/local/jboss</jbossHome>14. </configuration>15. </plugin>16. </plugins>17. </build>
    86. 86. Goals
    87. 87. mvn package jboss:hard-deploy

    ×