Aula maven

15

Click here to load reader

description

Aula de Maven

Transcript of Aula maven

Page 1: Aula   maven

Maven

Page 2: Aula   maven

Maven

O que é?● Convenção sobre configuração

Maven tenta evitar, tanto quanto possível configuração, escolhendo valores padrão do mundo real e fornecimento de modelos de projeto (archtypes);

● Gerenciamento de dependênciaÉ possível definir as dependências para outros projetos. Durante o build, a ferramenta resolve as dependências e, se necessário, também faz o build dos projetos dependentes;

● Repositório centralDependências do projeto pode ser carregado a partir do sistema de arquivos local, da Internet ou de repositórios públicos. A empresa por trás do projeto Maven também fornece um repositório central chamado Maven Central.

Page 3: Aula   maven

Maven

Template para ProjetosVocê pode criar um projeto, executando o goal generate do plugin do archetype: $ mvn archetype: generate. Isso inicia o processo de gerar no modo interativo e pede-lhe para várias configurações.groupId: Define um nome único da organização ou grupo que criou o projeto. Este é normalmente um nome de domínio. Para a geração do groupId define também o pacote da classe principal.artifactId: Define o nome exclusivo do artefato. No nosso caso é a mesma coisa como o groupId, mas também poderia ser um nome simples como "SuperCalculadora". A geração utiliza este valor como nome da pasta raiz do projeto.packaging: Define o processo de empacotamento. Isto poderia ser, por exemplo jar, war ou eap. Este ajuste tem influência sobre todo o ciclo de vida do projeto.version: Isso define a versão dos artefatos gerados a partir de nosso projeto.

Page 4: Aula   maven

Maven

Interface ComumUm projeto em maven se torna uma interface comum para muitas tecnologias, como IDEs. Projetos gerados no maven tem o seu archetype definido e por esse motivo pode ser migrado para outras IDEs sem problemas com configurações próprias da IDE.

Page 5: Aula   maven

Maven

Configuração● Project Object Model (POM)

A configuração de um projeto Maven é feito através de Project Object Model, que é representado pelo arquivo pom.xml.Por padrão, este é o único arquivo de configuração necessário para o processo de build. Todo o build segue um ciclo de vida específico. Maven vem com um ciclo de vida padrão que inclui as fases de build mais comuns, como a compilação, testes e empacotamento. Todas as fases são compostas de goals plugin. Goals plugin são tarefas que são mais específicas do que as fases. Assim, uma fase pode ser definida para executar mais de um goal plugin.

O resultado de uma compilação é chamada de artefato. Um artefato, por exemplo, pode ser um executável ou um arquivo de documentos.

Page 6: Aula   maven

Maven

InstalaçãoPara uma instalação manual você pode baixar Maven a partir do site.

Extraia o download para uma pasta selecionada no seu computador e adicione o relative path M2_HOME apontando para este diretório. Adicionar M2_HOME / bin a sua variável PATH.

Para ver os detalhes da instalação de outro sistema, siga o guia do site do projeto Maven.

Page 7: Aula   maven

Maven

Validar InstalaçãoPara validar que o Maven foi instalado corretamente, abra um console e use o seguinte comando: mvn -version.

Você deverá receber feedback como a saída da versão do Maven que você instalou.

Page 8: Aula   maven

Maven

Utilizando Maven como um Build ToolMaven é uma ferramenta de linha de comando que será iniciado no terminal de comandos.

Para executar uma compilação com Maven, você só tem que apontar a sua linha de comando para a pasta que inclui o arquivo pom.xml e execute o comando mvn install. Com esta única linha, o ciclo de vida do maven será iniciado. Assim, a configuração do pom.xml será carregada e todas as suas dependências serão resolvidas. Depois disso, Maven tenta carregar a versão mais recente das dependencias do repositório central em um repositório local, que é colocado como .m2 / repository no diretório home do usuário. Como parte do ciclo de vida, a ferramenta de build compila os fontes e testes, executa os testes e empacota os arquivos compilados, por exemplo, como um JAR. Como última etapa, o artefato resultante será gravado no repositório local, para que possa ser utilizado por outros projetos. Maven cria o resultado de compilação na pasta de destino. Se você executar o comando mvn instalar, Maven compila o código-fonte, constrói o resultado, por exemplo, um arquivo JAR.

Page 9: Aula   maven

Maven

Archetypes● appfuse-basic-jsf – AppFuse archetype para a criação de uma aplicação web com Hibernate,

Spring e JSF.● maven-archetype-j2ee-simple – Uma aplicação simples J2EE.● jpa-maven-archetype – Aplicação JPA.● struts2-archetype-starter – Struts 2 Archetype.

Lista de archetypes:http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

Page 10: Aula   maven

Maven

PluginsO framework é estruturado e funciona em cima de um conjunto de plug-ins que, individualmente, são os responsáveis por todas as tarefas executadas durante o processo de build. Assim, plug-ins executam desde a ação mais simples de todas, que é a limpeza do projeto, até tarefas muito mais elaboradas, como a criação de um EAR.O Maven possui uma infinidade de plug-ins “prontos para uso” e muitos outros são fornecidos por terceiros (soluções open-source ou proprietárias). Apesar disso, muitas vezes pode haver a necessidade de se incluir uma tarefa especial no ciclo de construção do aplicativo, algo particular a um determinado projeto ou empresa e cuja automação pode facilitar (e muito) a vida do desenvolvedor. Nesse contexto é importante entender como os plug-ins funcionam e como podemos construí-los, tirando assim ainda mais proveito do framework.

Page 11: Aula   maven

Maven

Exercicio - Criar e Gerar um projeto JavaNeste exercício, você irá cria um projeto Java com Maven e fazer o build desse projeto.

Page 12: Aula   maven

Maven

Geração do ProjetoNeste projeto nós utilizamos as funcionalidade scaffoding do Maven para criar um projeto Java. Para evitar o modo interativo (em que Maven pede os parâmetros necessários), todas as propriedades necessárias são passadas diretamente para o comando em sua criação. Selecione uma pasta onde irá ser criado projeto e insira esse comando.

$ mvn archetype:generate -DgroupId=com.consulters.build.maven.java -DartifactId=consulters-zeus -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Agora dê uma olhada como ficou a estrutura do projeto em sua máquina.Maven criou uma classe App.java na pasta ./src/main/, que é apenas um programa simples "Hello World". Também criou diretamente uma classe de teste válida em ./src/test/, com um dumb test. Na pasta raiz, há o nosso arquivo pom.xml.

Page 13: Aula   maven

Maven

Rodando o BuildAssim, geramos toda uma estrutura de projeto com código fonte e um arquivo pom.xml. Agora, queremos criar um executável. Para essa mudança em nosso projeto precisamos realizar o seguinte comando Maven.

$ mvn compile

Como resultado, Maven foi executado em todas as fases do ciclo de vida do projeto, que foram necessários para a fase de empacotamento. Resolveu as dependências, carregou o artefato JUnit em seu repositório local e fez o build dos fontes. Ele mesmo executou o teste do JUnit. Todos os arquivos gerados foram colocados na pasta de destino na raiz do projeto.Agora você pode executar o pacote.

$ java -cp target/com.vogella.build.maven.java-1.0-SNAPSHOT.jar com.vogella.build.maven.java.App Hello World!

Page 14: Aula   maven

Maven

Rodar Fases EspecíficasAssim, geramos toda uma estrutura de projeto com código fonte e um arquivo pom.xml. Agora, queremos obter um executável fora do nosso projeto. Para conseguir isso, temos que mudarna raiz do projeto e fazer o Maven gerar o pacote com a fase de empacotamento como objetivo.

$ cd consulter-zeus$ mvn package

Em vez de executar um build completo, também é possível apenas executar as fases individuais de um ciclo de vida do projeto. Por exemplo, se são necessárias apenas os resultados do teste:

$ mvn test

Para limpar o projeto e assim remover os arquivos gerados na pasta ./target/:

$ mvn clean

Page 15: Aula   maven

Maven

Referenciashttp://maven.apache.org/guides/getting-started/index.htmlhttp://en.wikipedia.org/wiki/Apache_Mavenhttp://maven.apache.org/guides/mini/guide-ide-eclipse.htmlhttp://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.htmlhttp://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html