Introdução
Vamos criar um projeto utilizando a ferramenta de linha de comando do maven. A ferramenta poderá ser baixada diretamente de https://maven.apache.org/download.cgi. Descompacte esta pasta, e configure a variável PATH para acessar a pasta bin
do conteúdo que você descompactou.
O que é o Maven?
O Maven é uma ferramenta de gerenciamento de dependências e do ciclo de vida de projetos de software no sentido técnico. Isso inclui:
- Facilitar a compilação do código, o empacotamento (JAR, WAR, EAR, …), a execução de testes unitários, etc.
- Unificar e automatizar o processo de geração do sistema. Nada mais de uma coleção de passos e scripts a serem executados manualmente.
- Centralizar informações organizadas do projeto, incluindo suas dependências, resultados de testes, documentação, etc.
- Reforçar boas práticas de desenvolvimento, tais como: separação de classes de teste das classes do sistema, uso de convenções de nomes e diretórios, etc.
- Ajuda no controle das versões geradas (releases) dos seus projetos.
Começando
Um artefato é geralmente um arquivo JAR que fica no repositório do Maven. Podemos entender cada artefato identificando os seguintes elementos:
groupId: normalmente é utilizado o nome do domínio do desenvolvedor/empresa criadora do artefato.
artefactId: geralmente é o nome do projeto. Ele deve ser único por grupo.
version: a versão do artefato, como 1.4.2 ou 3.0. Se houver o sufixo -SNAPSHOT (0.0.1-SNAPSHOT, por exemplo) significa que o projeto está em desenvolvimento e o pacote pode ser alterado.
packaging: jar, war, ear, pom (projeto de configuração).
Utilize o comando abaixo para criar o nosso primeiro artefato.
[code language=”text”]
mvn archetype:generate \
-DgroupId=br.com.marcelferry.workshop \
-DartifactId=maven-simple-example \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
[/code]
No comando que acima, nós criamos um projeto definindo o grupo e o nome do artefato. A versão como não foi informada, será definida como 1.0.0-SNAPSHOT.
Este artefato terá sua estrutura com base no arquétipo de inicio rápido que nos dará uma classe br.com.marcelferry.workshop.App
e um caso de teste br.com.marcelferry.workshop.AppTest
. Você pode personalizar o parâmetro -DgroupId
e -DartifactId
e -Dversion
.
No Eclipse
Vamos criar um novo projeto no Eclipse. Acesse o menu File > New > Maven Project.
Selecione a opção Create a simple project (skip archetype selection) e clique clique em Next >.
Vamos preencher a identificação do projeto, que nada mais é do que a identificação de um artefato.
O Group Id para o exemplo será br.com.starcode e o Artifact Id será teste-maven-01. A versão e o tipo de artefato (Packaging) já devem estar preenchidos, então simplesmente deixe como está. O nome e a descrição são opcionais.
Clique em Finish para ver o projeto criado.
Note que ele ainda não está definido com as configurações de um projeto Java, então clique com o botão direito sobre o projeto, acesse o menu Maven > Update Project….
Clique em OK para atualizar o projeto com as configurações do Maven e agora temos a estrutura característica.
Compilado, empacotando e executando
Agora, acessamos a pasta criada, cd maven-simple-example
, e executamos uma limpeza no projeto, utilizando mvn clean
, o goal clean
, apaga a pasta target, que contém todos os arquivos gerados durante o ciclo de vida de build.
Após o processo de limpeza, vamos executar mvn package
, que será responsável por gerar o pacote de acordo com a configuração do pom.xml
.
No caso de sucesso o nosso pacote estará compilado e disponível para execução.
[code language=”text”]
java -cp target/maven-simple-example-1.0-SNAPSHOT.jar br.com.marcelferry.workshop.App
[/code]
Para conhecimento, o maven disponibiliza um comando que gera uma documentação em html. Podemos utilizar o comando mvn site
, que disponibilizará esse conteúdo na pasta target/site
, que poderá ser acessado via browser.
Repositório local
É um diretório em seu PC onde os artefatos são armazenados após baixados de um repositório remoto na internet ou na intranet.
O repositório possui uma estrutura padrão onde o Maven consegue encontrar os artefatos através da identificação do mesmo.
Como vimos, o nosso pacote foi corretamente compilado, mas não estará disponível para ser utilizado pelos demais projetos que poderemos construir. Para instalar ele em nosso repositório local, por padrão localizado na pasta ~/.m2
, precisaremos utilizar o seguinte comando: mvn install
.