Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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).
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.
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.
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
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
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
<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>
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