O objetivo desse post é ensinar como configurar um projeto para usar maven desde o início, deixando um pouco de lado a origem e a motivação por trás do maven. Também não será detalhado o funcionamento do maven, o que será feito em um outro post.
Para instalar basta baixar a pasta compactada do próprio site (http://maven.apache.org/download.html). Existem várias tipos de arquivos compactados, mas todos contém a mesma pasta, escolha o de sua prefência. Como o maven é feito em Java, não existe restrição de SO.
Uma vez que a pasta foi descompactada no diretório de sua escolha, basta adicionar no PATH de seu SO o caminho para a pasta ‘bin‘ de onde o maven foi descompactado.
No Linux e no OSX, basta adicionar uma linha em seu arquivo ‘.bash_profile‘ na pasta do seu usuário:
export PATH=$PATH:<diretório do maven descompactado>/bin
No Windows vá em ‘Configurações Avançadas do Sistema‘ -> ‘Variáveis de Ambiente‘, na parte de ‘Variáveis de ambiente para o usuário‘ clique em ‘Novo‘.
No campo ‘Nome‘ coloque ‘PATH‘, e no valor o caminho até a pasta ‘bin‘ do diretório do maven. No caso da imagem ‘C:mavenbin‘.
Lembrando que o maven é feito em Java, portanto é obrigatório que o Java esteja instalado na máquina e que a pasta ‘bin‘ do java esteja definida também no ‘PATH‘ para usá-lo.
Para usar as dependências que ele irá vincular no projeto dentro do Eclipse, basta adicionar a variável de ambiente no Eclipse M2_REPO:
‘Windows‘ -> ‘Preferences‘ -> ‘Java‘ -> ‘Build Path‘ -> ‘Classpath Variables‘
Clique em ‘New‘ e crie uma varável que se chama ‘M2_REPO‘ com o valor apontando para o diretório do seu usuário seguido de ‘/.m2/repository‘:
Uma vez que o maven esteja instalado, rode em um terminal:
$ mvn --version
Para se certificar que o maven está instalado corretamente e que a versão é a que você fez o download.
Agora que o maven está rodando corretamente, basta escolher uma para pasta colocar seu novo projeto e rodar o seguinte comando dentro da mesma:
$ mvn archetype:generate
Feito isso:
Confirme as informações e deixe o maven terminar de criar seu projeto. Certifique-se que tudo está configurado corretamente e rode dentro da pasta de seu projeto novo:
$ mvn clean install
Isso fará com que o maven compile seu código, rode os teste, e gere um artefato (jar) que estará disponível em seu repositório local. Para entender como o maven organiza os artefatos, entre na sua pasta de usuário e depois na pasta ‘.m2‘ e dentro ‘repository‘. Repare que existe uma pasta com o nome do seu ‘groupId‘ e sua respectiva hierarquia, e dentro dessa pasta existe uma outra com o nome do seu artefato e por último uma outra pasta com a versão do mesmo. Abra a pasta e veja que o jar do seu projeto está dentro junto com o pom do mesmo. Por exemplo os artefatos do JUnit:
Para importar seu projeto novo no Eclipse, basta rodar o comando no terminal:
$ mvn eclipse:eclipse
Com isto o projeto se tornará um projeto que o eclipse entende, e assim será possível importá-lo. Importe o projeto e veja como o maven organizou as pastas e pacotes:
Abra na ‘View‘ ‘Package Explorer‘ do Eclipse e repare que existem duas pastas principais no projeto: ‘src/main/java‘ e ‘src/test/java‘. Em ambas as pastas existe o pacote ao qual tínhamos dado nome no momento em que criamos o projeto pelo maven. Também existe uma classe com um método ‘main‘ que apenas imprime “Hello World!”, e uma classe de teste que apenas possui um ‘assertTrue(true);‘.
Alguns detalhes importantes: o projeto que o maven cria por padrão usa o JUnit 3.8.1, e para mudar a versão basta alterar o ‘pom.xml‘ que o maven criou. Outro detalhe importante é que por padrão o maven compila o projeto usando Java 1.3, portanto é preciso adicionar o seguinte trecho de xml no ‘pom‘ do projeto para alterar a versão do compilador, dentro da tag ‘project‘:
[cc_xml]
[/cc_xml]
Note que foi adicionado uma tag ‘encoding’ com o valor ‘UTF-8‘, isso para dizer que as classes estão escritas em formato UTF-8 para padronizar o build.
Agora que o projeto está criado e configurado podemos começar a desenvolver em cima dele. Todas as suas classes da aplicação devem sempre estar dentro de ‘src/main/java‘, pois esta é a pasta que o maven irá exportar no jar que estará disponível no repositório.
Dica: rode o comando:
$ mvn clean install
Agora abra a pasta do projeto. Será criada uma pasta ‘target‘ que contém o ‘jar‘ do seu projeto além de alguns relatórios de teste e os arquivos compilados.
Na pasta ‘src/test/java‘ devem ir todas as classes de teste do seu projeto. Assim o maven se encarregará de rodá-los quando o jar for gerado, garantindo a integridade do projeto.
No próximo post será explicado melhor o funcionamento do maven, por isso tente seguir o exemplo e poste dúvidas a vontade.
Welcome to the dark side 😀
Só uma sugestão, instala o m2e no eclipse, daih não precisa fazer nenhuma configuração.
http://m2eclipse.sonatype.org/
VELO
Na internet há uma porção de pessoas com problemas para utilizar o maven com flex, seja flex 3 ou o 4, e eu sou uma delas. Seria interessante um post sobre este assunto, pois sei que a D-Click possui uma ótima equipe de desenvolvimento, e com certeza já devem ter desenvolvido algum projeto com essa integração.
Agradeço a atenção.
Boa noite galera,
o m2eclipse é muito bom para quem ainda está se familiarizando com o Maven. Eu vou esperar pelo Maven 3 que está prometido para o fim do ano para me arriscar com ele =).
Obrigado pela dica Marvin!
Quanto ao Flex, estamos providenciando um post sobre o assunto! Obrigado pelo feedback também Daniel.
Fala Gustavo,
bacana o post, mas vc poderia adicionar “o que é o Marven”, já que o post é pra quem está começando.
[]!
Obrigado pelo feedback Hugo!
Gostei da idéia, vou colocar uma explicação sobre o propósito do Maven no próximo post.
Abraço!
Muito bom o post.
Tb estou tendo problemas com Maven + Flex, ficarei no aguardo do post.
[]s
Opa, mais um na espera pelo post Maven+Flex =]
Muito bom os tutoriais, estou gostando muito mais do que outros que busquei na internet, parabéns pelo trabalho!
Consegui executar tudo aqui, estou estudando Maven a algum tempo só na net.
Sugiro aos que nao conseguirem, que nao desistam.
Leia um artigo aqui e outro ali, e uma hora a coisa ingrena.
Obrigado ao autor do excelente artigo.
grato,
Elano
Kade a integração do Maven com Flex pessoal????
Só falta isso em…
Prabens pelo post mas não pare de contribuir please