Pesquisar este blog

quinta-feira, 14 de abril de 2016

Tutorial - Maven - Criando projetos com Maven usando o Eclipse

Motivação

Já mostrei nessa postagem como obter e configurar o Maven em seu ambiente.

Nesse post (curto diga-se de passagem) mostrarei como é simples criar um projeto a partir da IDE eclipse.

Após ler esse post você estará preparado para criar projetos com o Maven a partir do Eclipse, sendo que o processo é muito simples, assim como em outras IDEs como o IntelliJ e o Netbeans.

Requisitos para o tutorial

  • Configuração do ambiente.  Leia... 
  • Criando projetos pela linha de comando.  Leia... 

Requisitos de Sistema


Ferramenta Versão
JDK 1.7 ou superior (estou utilizando a versão 1.8.0_74)
Maven 3.3.9
Eclipse Nesse tutorial será utilizada a verão 4.5 (Eclipse Mars)

Criando uma aplicação simples pelo Eclipse

Esse post será bem rápido pois não tem segredo na criação de projetos Maven no Eclipse utilizando o plugin de integração desenvolvido para a IDE.

O Eclipse a partir da versão Luna já vem com o plugin do Maven instalado possuindo inclusive um Maven embutido na IDE, que pode também ser substituído pelo configurado no SO via configuração das preferencias do Eclipse para o Maven.

Nas versões anteriores é necessário instalar via marketplace.

O procedimento é igual em todas.

Instruções:

Passo 1: Abra o Eclipse e navegue Menu File -> New -> Maven Project (ou simplementes pressione ALT + SHIFT + N e seleciona Maven Project);


Passo 2: Na tela seguinte marque a opção Create a simple project (skip archetype selection).
* Se você não marcar essa opção o Eclipse lhe apresentará uma série de archetypes para criação do projeto. Isso foge ao objetivo desse tutorial.



Passo 3: Agora iremos preencher as informações sobre nosso projeto.
Aqui iremos preencher Group Id, Artifact Id normalmente. Você deve prestar atenção no packaging, pois é essa opção que define qual será o tipo de empacotamento (jar, war ou pom) e consequentemente o tipo da aplicação.
Nesse tutorial estamos criando uma aplicação Java simples, então, deixe selecionado a opção jar e clique em Finish.


E pronto! Já temos um projeto pronto e já sabemos como criar um projeto Maven criado pelo Eclipse.


Clicando em com o botão direito do mouse no projeto e navegando Run As o Eclipse lista diversas maneiras de execução inclusive as opções mais comuns de execução do ciclo de build do Maven como os famosos clean e o install.


Conclusão

O Maven é uma ferramenta muito poderosa para gerenciar dependências e automatizar tarefas de build no seu projeto e amplamente utilizado nos mais variados sistemas desenvolvidos em Java e o Eclipse é uma das IDEs mais populares no mundo Java.

É muito importante que você conheça pelo menos o básico de seu funcionamento dessas ferramentas para conseguir desenvolver seu trabalho de forma produtiva.

Aqui eu mostrei como é fácil criar um projeto Maven com pelo Eclipse.
Com esses procedimentos você já tem conhecimento suficiente para se aprofundar e criar projetos complexos utilizando o Maven e seus archetypes a partir do Eclipse.

Até o próximo post!

Links

Link download do Eclipse

domingo, 7 de fevereiro de 2016

Tutorial - Maven - Criando projetos com Maven via linha de comando

Motivação

Já mostrei nessa postagem como obter e configurar o Maven em seu ambiente.

Nesse post mostrarei como é simples criar um projeto com o Maven a partir da linha de comando.

Após ler esse post você estará preparado para criar projetos com o Maven.

Criando uma aplicação simples

O Maven é uma ferramenta de linha de comando e possui diversos comandos muito uteis para o desenvolvedor. (Irei criar um post mostrando alguns desses comandos, fique tranquilo).

Para criar um simples projeto Java com o Maven na linha de comando é muito simples.

Instruções:

Passo 1: Para esse exemplo iremos iniciar abrindo o terminal e navegaremos para a pasta do usuário e criaremos uma pasta chamado workspace_exemplo e acessaremos ela.


Passo 2: Execute o comando mvn archetype:generate.
Esse comando vai listar todos os archetypes disponíveis no catalogo do Maven e seus respectivos números.


Por padrão ele deixa pré selecionado o número 705 que é o referente ao maven-archetype-quickstart, um projeto simples de exemplo do Maven.
Escolha a opção que atenda o seu projeto e siga em frente. (Para seguir o tutorial vamos usar a 705 mesmo).


Passo 3: Após selecionar o archetype você vai ter que selecionar a versão do archetype. Vamos assumir a seleção do archetype 705.


Nesse caso por padrão ficará pré selecionado a opção 6, referente a versão 1.1 do archetype (a mais recente), mas você pode escolher outra de acordo com a sua necessidade.

Passo 4: Informe o GroupId.


O GroupId é o identificador do grupo/organização que esta desenvolvendo o projeto.

Passo 5: Informe o ArtifactId.


O ArtifactId é o nome do componente que será o resultado no fim. É o nome do pacote final por assim dizer.

Passo 6: Informe a versão.


Essa é a versão de seu projeto no ato da criação.
Por padrão o Maven vai sugerir a versão 1.0-SNAPSHOT.

Passo 7: Informe o package.


Aqui você definirá o nome padrão para os pacotes de sua aplicação. 
Por padrão o Maven vai sugerir o mesmo conteúdo informado em GroupId.

Passo 8: Confirme a criação do projeto.


Verifique a estrutura do projeto criado após a execução desses procedimentos.


Alias, esse procedimento que realizamos é chamado de Interativo.
Temos uma forma mais simples de executar a mesma ação, porém você precisa ser muito mais criterioso, onde você já deve saber o artifactId, groupId e version do archetype assim como as mesmas informações para o criação de seu projeto pois tudo será informado como parâmetro do comando mvn archetype:generate.

Basta executar o comando abaixo:

mvn archetype:generate 
-DgroupId=com.valhala.tutorial 
-DartifactId=projeto_tutorial 
-Dversion=1.0-SNAPSHOT 
-DarchetypeGroupId=org.apache.maven.archetypes 
-DarchetypeArtifactId=maven-archetype-quickstart 
-DarchetypeVersion=1.1 
-DinteractiveMode=false

Ou até mesmo:

mvn archetype:generate -B
-DgroupId=com.valhala.tutorial 
-DartifactId=projeto_tutorial 
-Dversion=1.0-SNAPSHOT 
-DarchetypeGroupId=org.apache.maven.archetypes 
-DarchetypeArtifactId=maven-archetype-quickstart 
-DarchetypeVersion=1.1 

Ambos comandos funcionam da mesma maneira.
Essa forma de criar projetos é chamada de criação em Batch.

Vamos dar uma olhada na estrutura do projeto criado após o procedimento...


Repare que dentro da pasta projeto_tutorial temos um arquivo xml chamado pom.xml. 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.valhala.tutorial</groupId>
  <artifactId>projeto_tutorial</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>projeto_tutorial</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Esse arquivo é muito importante no projeto, sendo o coração do seu projeto.
É nesse arquivo que você vai configurar as dependências de sua aplicação, plugins e outras configurações importantes para o seu projeto.

Temos também a pasta src e dentro dela as pastas main e test.
Os nomes são claros quanto ao objetivo das pastas.
main: Pasta onde ficam os arquivos principais do projeto. Tudo que será compilado para gerar o pacote final de produção fica dentro desta pasta.
test: Pasta onde fica tudo referente a execução de testes da aplicação.

Mas vale dizer que mesmo o projeto tendo sido criado a partir de um archetype Maven o mesmo não esta totalmente no padrão de organização de projetos Maven.

Suponha que você tenha arquivos de propriedades por exemplo... Onde eles devem ficar? Na pasta java?
Bom, no fim colocando na pasta java vai funcionar, mas fica um pouco estranho, já que o nome da pasta é java, logo entende-se que apenas arquivos .java devem ficar nesse diretório.

O Maven adota o padrão de organização de estrutura de pastas abaixo:



Então, vamos criar a pasta resources dentro das pastas main e test para adequarmos o projeto para o padrão Maven.
A pasta resources é utilizada para gravar todos os recursos que não sejam necessariamente código Java, como por exemplo arquivos de propriedades.

E pronto! Já temos um projeto pronto e já sabemos como criar um projeto Maven pela linha de comando.

Conclusão

O Maven é uma ferramenta muito poderosa para gerenciar dependências e automatizar tarefas de build no seu projeto e amplamente utilizado nos mais variados sistemas desenvolvidos em Java.
É muito importante que você conheça pelo menos o básico de seu funcionamento para conseguir desenvolver bem o seu trabalho.

Aqui eu mostrei como criar um projeto simples utilizando o Maven.
Com esses procedimento você já tem conhecimento suficiente para se aprofundar e criar projetos complexos utilizando o Maven e seus archetypes.

No meu próximo post irei mostrar como criar um projetos utilizando o Maven, porém a partir da IDE Eclipse.

Até o próximo post!

Links

Lista de archetypes Maven

sábado, 6 de fevereiro de 2016

Tutorial - Maven - Configuração do Ambiente

Motivação

Hoje existem várias ferramentas de controle de dependências e build de aplicações no mercado como Gradle, Ant, Ivy dentre outros.
Um dos mais importantes nesse cenário é o Maven desenvolvido e mantido pela Apache.

Após esse tutorial você vai ser capaz de configurar seu próprio ambiente e iniciar seus próprios projetos com essa ferramenta.

O que é o Maven?



Criado e mantido pela Apache Software Foundation, Maven nasceu da necessidade de simplificar o processo de build do projeto Jakarta Turbine, acabou se tornando uma ferramenta completa para gerenciamento de dependências e build de aplicações Java em geral.

Utilizando o Maven você pode centralizar todo o controle de dependências do projeto e customizar de uma maneira simples o processo de build de sua aplicação por meio de plugins.

    Preparando o ambiente

    O Maven é uma ferramenta desenvolvida em Java, logo para que ele funcione corretamente é necessário que o Java esteja devidamente instalado e configurado na máquina.

    Aqui irei mostrar o procedimento de instalação da JDK do Java, Maven e também mostrarei a configuração das variáveis de ambiente no Windows (Sistema Operacional que utilizo) e no fim colocarei links para configuração em outras plataformas.

    Requirementos


    Ferramenta Versão
    JDK 1.7 ou superior (estou utilizando a versão 1.8.0_74)
    Maven 3.3.9

    Obs: O requisito para essa versão da Maven funcionar é a JDK a partir da versão 7. Logo não há problema de instalar uma JDK mais recente.

    * Os links para download estão listados na seção Links.

    Instalação da JDK

    1. Faça o download da JDK no site da Oracle;
    2. Instale a JDK em um diretório de sua preferencia.
    3. Configure a variável de ambiente JAVA_HOME e inclua a mesma na variável de ambiente Path conforme instruções.

    Configuração variáveis de ambiente da JDK

    Passo 1: Acesse o painel de controle e selecione Sistema.


    Passo 2: Selecione Configurações avançados do sistema.


    3.Clique no botão Variáveis de Ambiente... na aba Avançado.


    Passo: 4: Clique em Novo... .


    Passo 5: Crie a variável JAVA_HOME e coloque a pasta de instalação da JDK.


    Passo 6: Após criar a variável JAVA_HOME edite a variável Path colocando o endereço da pasta \bin da instalação da JDK do Java no fim do texto que define a variável de ambiente conforme a imagem.


    Passo 7: Na linha de comando execute o comando java -version para verificar se a instalação e configuração foram realizadas corretamente.

    O resultado deve ser o mostrado na imagem. 


    Se você obteve esse resultado pode passar para a instalação do Maven, caso contrario repita o processo e verifique as mensagens apresentadas durante a instalação.
    Em alguns casos se faz necessário reiniciar o computador.

    Instalação Maven

    1. Faça o download da última distribuição do Maven no site do projeto da Apache.
    2. Descompacte o pacote em um diretório de sua escolha.
    3. Configure as variáveis de ambiente M2_HOME, MAVEN_HOME, MAVEN_OPTS e M2 e inclua a ultima na variável de ambiente Path conforme instruções.

    Configuração variáveis de ambiente do Maven

    Para configuração das variáveis de ambiente do Maven os passos 1 até 4 da configuração de variáveis de ambiente da JDK são aplicáveis.
     
    Passo 1: Defina a variável M2_HOME apontando para a pasta de instalação do Maven em sua máquina.


    Passo 2: Defina a variável MAVEN_HOME apontando também para a pasta de instalação em sua máquina.


    Obs: Estamos criando duas variáveis apontando para o mesmo local devido algumas ferramentas e IDE's procurarem por padrão pela variável de ambiente MAVEN_HOME e outras por M2_HOME, então para evitar erros por conta dessa diferença iremos criar as duas variáveis.

    Passo 3: Defina a variável de ambiente MAVEN_OPTS.


    Obs: Por padrão o Maven assumira uma alocação máxima de heap de 512 MB iniciando com 256 MB, mas suponha que você tenha uma aplicação gigantesca que consuma mais do que 512 MB da heap no processo de build... isso irá resultar em um java.lang.OutOfMemoryError.
    Essa variável vai mudar esse valor padrão alocando no caso da instalação que eu realizei 1024 MB (1 GB), aumentando assim a alocação máxima no heap e diminuindo o risco de erro durante o processo de build.

    O segundo parâmetro -XXMaxPermSize manipula a alocação máxima do PermGen. Essa é a área de memória onde ficam guardados as representações internas das classes da JDK, aplicação e etc (metadados das classes). 
    Esse parâmetro é válido até a versão 7 do Java, pois na versão 8 o PermGen foi substituído pelo Metaspace com o intuído de sanar os problemas de OutOfMemoryError causados pelo estouro da alocação do PermGen.

    Passo 4: Defina a variável de ambiente M2 apontando para a pasta \bin da instalação do Maven.


    Passo 5: Após a criação da variável M2 edite a variável de ambiente Path incluindo o apontamento de M2 no fim das definições de caminhos que definem Path;


    Passo 6: Na linha de comando execute o comando mvn -version para verificar se a instalação e configuração foram realizadas corretamente.

    O resultado do comando deve ser semelhante ao mostrado na imagem.


    Se você obteve esse resultado seu ambiente esta preparado para a utilização do Maven, caso contrario, repita o processo e verifique as mensagens apresentadas durante a instalação.
    Em alguns casos se faz necessário reiniciar o computador.

    Obs: Repare que o parâmetro que manipula a alocação do PermGenfoi ignorado.
    Isso é devido eu ter utilizado a JDK 8 na instalação.
    Como já comentei, a partir da versão 8 do Java não temos mais PermGen e sim Metaspace.
    Para quem estiver utilizando a JDK 7 isso não irá ocorrer.

    Conclusão

    O Maven é uma ferramenta muito poderosa para gerenciar dependências e automatizar tarefas de build no seu projeto e amplamente utilizado nos mais variados sistemas desenvolvidos em Java.
    É muito importante que você conheça pelo menos o básico de seu funcionamento para conseguir desenvolver bem o seu trabalho.

    Aqui eu mostrei como obter a ferramenta e configurar seu ambiente para que você já consiga utilizar a ferramenta.

    No meu próximo post irei mostrar como criar um projetos utilizando o Maven.

    Até o próximo post!

    segunda-feira, 25 de janeiro de 2016

    E que se iniciem os trabalhos!

    Oi!

    Meu nome é Bruno Luiz Viana, tenho 26 anos e sou desenvolvedor Java.
    Sou formado em Ciência da Computação e trabalho com desenvolvimento de software a 6 anos.

    A partir de hoje (mas não sei com que frequência... isso eu defino depois, o importante é iniciar não?) vou postar conteúdo relacionado a desenvolvimento de software e programação, como dicas, tutoriais... enfim... conteúdo para ajudar quem esta iniciando a desenrolar em alguma dúvida e coisas desse tipo.

    Espero ajudar e aprender também, pois trabalhar com desenvolvimento é muito legal, mas compartilhar conhecimento e aprender mais a cada dia é melhor ainda.

    Eu vou construir meus posts na forma de tutoriais (alguns bem curtos, outros longos se necessário) iniciando da configuração até o fim do mesmo. Tratarei de coisas diversas, desde velharias, pois querendo ou não, o profissional de TI brasileiro precisa lidar com sistemas legados nas empresas e para iniciantes é meio complicado, pois na faculdade e em cursos particulares só será ensinado coisas novas (o que é o certo).
    Então eu vou dar uma força, onde de vez em quando farei um tutorial utilizando algum framework usado em sistemas legados, mas também farei o mesmo com tecnologias e frameworks mais recentes.

    O ideal é o desenvolvedor iniciante aprender o legado, mas com o passar do tempo e adquirida a confiança necessária, propor mudanças... TI deve ser um agente de mudanças nas empresas, sempre inovando e contribuindo para o negócio.

    Então é isso leitor... Nos vemos nos próximos posts. :)