Sei sulla pagina 1di 18

Maven 2

walter.mourao@gmail.com

Maven 2

Ferramenta para automatizao do processo de construo de aplicaes. Mais ou menos equivalente ao Make ou Ant. Valoriza a padronizao do processo de build. Muito diferente do Maven1 que exigia muita configurao.

Terminologia do Maven (1)

Com o Maven, voc executa plugins que atingem objetivos (goals) em diferentes fases do ciclo de construo (lifecycle) para criar artefatos. Exemplos de artefatos so arquivos .jar e .war. Esses artefatos tem coordenadas (groupId, artifactId e version).

Terminologia do Maven (2)

Os artefatos ficam guardados em repositrios locais ou remotos. Quando um artefato criado, ele instalado em um repositrio local ou implantado (deployed) em repositrios remotos. Os artefatos podem ser insumos para a criao de outros artefatos atravs do mecanismo de dependncias. Novos projetos Maven podem ser criados a partir de modelos (ou arqutipos) com o plugin archetype.

Criando um projeto Maven

Execute mvn archetype:generate


Selecione o 15 (default). Exemplos de respostas:


Define value for groupId: : com.wim.ita Define value for artifactId: : teste-maven Define value for version: 1.0-SNAPSHOT: : Define value for package: : com.wim.ita.testemaven

Confirme e observe que o projeto foi criado na pasta com o nome que foi dado para o artifactId (teste-maven nesse exemplo). Nesse exemplo archetype o plugin e generate o goal Observe os downloads de plugins.

Estrutura padro de um projeto Maven

Construindo a aplicao

Execute na pasta do projeto mvn install install o ciclo (lifecycle) que cria e instala artefatos no repositrio local. Espera-se um BUILD SUCCESSFUL Observe o log de execuo com as fases de compilao, compilao do teste, teste e etc. Observe a pasta target, contm artefatos transitrios e o arquivo .jar final. Observe o artefato final instalado em <repositrio>/com/wim/ita/teste-maven/1.0SNAPSHOT com/wim/ita = groupId teste-maven = artifactId Para executar a aplicao: java -cp target/teste-maven-1.0-SNAPSHOT.jar com.wim.ita.testemaven.App

Ciclos (Lifecycles) do Maven


validate generate-sources process-sources generate-resources process-resources compile process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources test-compile test prepare-package package pre-integration-test integration-test post-integration-test verify install deploy

Projetos Maven no eclipse

Execute mvn eclipse:eclipse eclipse = plugin eclipse = goal Observe a criao dos arquivos .project e .classpath No Eclipse: File New Project Project General Project preencha name e location Observe que as libraries esto preenchidas e apontando adequadamente para o repositrio

POM Project Object Model

Contm informaes/configuraes especficas do projeto. Suporta conceitos de herana. O POM de um projeto sempre herda a configurao de um ou POM (quando subprojeto) ou do Super POM.

Dependncias

Mecanismo que permite a descrio dos artefatos que contm insumos para o projeto.
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>

Excluso de dependncias

As dependncias podem ser excludas para resolver conflitos

<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency>

Snapshots

Acrescente -SNAPSHOT verso do artefato para indicar que uma verso em desenvolvimento O Maven verifica constantemente se existem atualizaes

Repositrios

Estruturas de pastas contendo artefatos (plugins, .jar, .war, etc.) . Locais (~/.m2/repository) ou remotos (http, https, ftp, sftp) Repositrios pblicos ( http://repo2.maven.org/maven2/, http://repository.jboss.org/maven2) Gerenciadores/proxies Nexus, archiva, artifactory.

Propriedades do projeto
<properties> <app.final.name>nomeXYZ</app.final.name> <source.version>1.5</source.version> <target.version>1.5</target.version> </properties>

Configurao de build e plugins


<build> <finalName>${app.final.name}</finalName> <pluginManagement> <plugins> <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-compiler-plugin </artifactId> <configuration> <source>${source.version}</source> <target>${target.version}</target> </configuration> </plugin> </plugins> </pluginManagement> </build>

Ciclos de construo

Geralmente um artefato construido com a execuo de uma sequencia de metas (goals) O Maven reconhece 21 ciclos
validate generate-sources process-sources generate-resources process-resources compile process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources test-compile test prepare-package package pre-integration-test integration-test post-integration-test verify install deploy

Profiles

Um profile permite um build customizado Execute mvn install -Pxpto


<profiles> <profile> <id>xpto</id> <properties> <app.final.name> NomeXPTO </app.final.name> </properties> </profile> </profiles>

Potrebbero piacerti anche