• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Criando um projeto Maven básico na IDE Eclipse

February 13, 2017 by Mauda 12 Comments

Conteúdo do Post:
  1. Maven – definição
  2. Criação de um Projeto Básico no Eclipse.
  3. Apresentando o Projeto Criado
  4. Pasta src/main/java
  5. Pasta src/test/java
  6. Arquivo pom.xml
  7. Alterando o arquivo pom.xml para padronizar
  8. finally{

Olá Pessoal, tudo bom?

O post de hoje é relacionado a criação de um projeto básico em Java utilizando o controlador de dependências de bibliotecas Maven. Assim, esse será um post básico pois a partir dele podemos explorar a criação de outros tipos de projetos a partir desse controlador. Iremos falar um pouco sobre o que é o Maven e qual é a sua utilidade. Veja na continuação desse post…

Maven – definição

Em todo projeto de desenvolvimento de software nós encontramos um problema básico que é o de configuração de um ambiente para os desenvolvedores. Assim o primeiro ponto de prover as bibliotecas necessárias e suas dependências sempre foi uma atividade complexa.

Figura 01 – Logo Maven

O gerenciador Maven, foi criado pela Apache Foundation, e sua palavra, no idioma Judeu, significa acumulador de conhecimento. O objetivo básico do Maven é permitir aos desenvolvedores um conjunto completo de desenvolvimento com um esforço pequeno e em um período de tempo muito curto. Além disso o Maven pode ajudar a gerenciar os seguintes pontos de um projeto:

  • Fazer o processo de build mais simples e fácil
  • Prover um sistema uniforme de geração de builds
  • Prover as informações do projeto com qualidade
  • Fornecer padrões para as melhores práticas de desenvolvimento
  • Permitir uma transparência na migração de novas funcionalidades

O Maven em seu objetivo básico permite que possamos adicionar novas bibliotecas, o qual o Maven dá o nome de Dependências, ao um projeto Java Maven previamente criado. Assim vamos agora ver como criar um projeto básico dentro da IDE Eclipse. A partir deste, podemos, em próximos artigos, explorar a adição de novas dependências a este projeto básico.

Criação de um Projeto Básico no Eclipse.

O projeto que iremos criar a seguir não possui bibliotecas além da biblioteca de testes JUnit. Esse projeto foi criado no Eclipse Neon 2, mas a forma de criação é padrão para outras versões do Eclipse. A primeira coisa é abrir o Eclipse em um workspace escolhido, normalmente quando inicio um projeto do zero crio um workspace novo a fim de diminuir a chance de problemas entre projetos. Com o Eclipse carregado, vá a view Package Explorer clicar com o botão direito e escolher a opção New > Project…, como mostra a Figura 02.

Figura 02 – Opção New > Project…

O Eclipse irá abrir uma popup de título New Project. Existe uma input text nessa popup, comece a digitar a palavra Maven, irão restar apenas as 3 opções conforme mostra a Figura 03.

Figura 03 – Popup New Project

Escolha a opção Maven Project e clique no botão Next >, o Eclipse irá abrir uma popup com o título New Maven Project, conforme mostra a Figura 04, a opção Use default Workspace location já vem pré selecionada e iremos deixar assim, pois queremos que o projeto seja criado dentro do workspace que nós acabamos de criar.

Figura 04 – PopUp New Maven Project – parte 1

Clique no botão Next > e o Eclipse irá para a segunda parte dessa popup, conforme mostra a Figura 05. Nessa parte é possível escolher um Archetype para criar o projeto Maven. Um Archetype é uma pré configuração básica de um projeto, existem archetypes para projetos web, java swing, portlets e outros mais. Iremos escolher o archetype maven-archetype-quickstart, o qual configura o projeto para ser um projeto Maven, mas não insere várias dependências que seriam inúteis para nós.

Figura 05 – PopUp New Maven Project – parte 2

Após selecionar o archetype, clique no botão Next > e o Eclipse irá apresentar a ultima parte dessa popup, conforme mostra a Figura 06. Essa parte possui algumas input text a serem preenchidas. O Item Group Id deve ser preenchido com o package default de seus projetos, como por exemplo a url invertida do site da sua empresa. A seguir no item Artifact Id, deve ser inserido o nome do seu projeto, por exemplo, seminariosCientificos. No campo Version deve ser escolhida a versão que o projeto se encontra. Caso existam outras propriedades a serem adicionadas ao projeto, pode-se utilizar o botão Add…

Figura 06 – PopUp New Maven Project – parte 3

Clique no botão Finish para que o Eclipse crie seu projeto. O resultado final é visualizado na Figura 07.

Figura 07 – Resultado final da criação do Projeto Maven

Apresentando o Projeto Criado

É possível visualizar que o Eclipse criou toda a estrutura básica para o Projeto. Já criou uma pasta para armazenamento dos códigos do projeto (src/main/java) com o pacote mencionado anteriormente. Uma pasta para armazenamento dos testes unitários (src/test/java). Criou um arquivo pom.xml (Project Object Model) que contém todas as características básicas do Projeto Maven.

Pasta src/main/java

Dentro dessa pasta foi criado um package br.com.mauda.seminariosCientificos e dentro deste uma classe java chamada App.java. Essa classe possui um hello world apenas para indicar que a criação deu certo, conforme mostra o código abaixo:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
package br.com.mauda.seminariosCientificos;
 
/**
* Hello world!
*
*/
public class App
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Pasta src/test/java

Dentro dessa pasta foi criado um package br.com.mauda.seminariosCientificos e dentro deste uma classe java chamada AppTest.java. Essa classe possui três métodos de teste unitários, muito simples, apenas para indicar novamente que a configuração deu certo:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package br.com.mauda.seminariosCientificos;
 
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
 
/**
* Unit test for simple App.
*/
public class AppTest
    extends TestCase
{
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest( String testName )
    {
        super( testName );
    }
 
    /**
     * @return the suite of tests being tested
     */
    public static Test suite()
    {
        return new TestSuite( AppTest.class );
    }
 
    /**
     * Rigourous Test :-)
     */
    public void testApp()
    {
        assertTrue( true );
    }
}

Arquivo pom.xml

Por fim o arquivo mais importante de um projeto Maven, o arquivo pom.xml (Project Object Model). No nosso caso o pom armazena as informações de groupId, artifactId, version, packaging, name, url.

Seu sourceEncoding é UTF-8 e possui a dependência do JUnit 3.8.1. Dentro da tag dependencies poderão ser armazenadas novas dependências de bibliotecas, o que veremos no futuro. Abaixo o código completo do arquivo pom.xml.

XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<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>br.com.mauda</groupId>
  <artifactId>seminariosCientificos</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>seminariosCientificos</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>

Alterando o arquivo pom.xml para padronizar

Existem algumas alterações básicas no arquivo pom que serão estendidas a qualquer dependência nova que possamos vir a adicionar no futuro. Assim o arquivo pom.xml será alterado para contemplar a versão Java 8, adicionando ao arquivo uma tag chamada build para o plugin de compilação do Maven, fazendo com que o byte code gerado esteja na versão 8 do Java, conforme as linhas destacadas abaixo:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<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>br.com.mauda</groupId>
  <artifactId>seminariosCientificos</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>seminariosCientificos</name>
  <url>http://maven.apache.org</url>
 
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
 
  <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>

Além desse aspecto de compilação do Java, vamos mudar a versão da biblioteca JUnit para a versão 4.12, pois utilizaremos testes unitários com annotations mais recentes do JUnit 4. O código destacado mostra essa modificação:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<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>br.com.mauda</groupId>
  <artifactId>seminariosCientificos</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>seminariosCientificos</name>
  <url>http://maven.apache.org</url>
 
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

finally{

Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!

Até um próximo post!

Filed Under: Java, Maven Tagged With: Java, maven, maven project, novo projeto

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Comments

  1. Rildson Mendes says

    June 8, 2017 at 10:02 am

    Parabéns Everson! Eu sou novo nessa área e tive que começar a programar na empresa onde trabalho sem conhecer “o que é o MAVEN?”, mas só com essa pequena introdução já posso ter ideia de como o projeto começou e desenvolveu-se.

    Reply
    • Mauda says

      June 8, 2017 at 8:53 pm

      Olá Rildson, tudo bom?

      Que bom que te ajudou a esclareceu algumas coisas.

      Existe várias continuações desse artigo para inserir outras dependências confira lá.

      Falta ainda fazer um artigo explicando um pouco melhor sobre maven. Está na minha lista. 😉

      Qualquer coisa estamos aqui!

      Obrigado.

      Reply
    • CEZAR GOMES says

      November 6, 2019 at 2:23 pm

      Hoje, este artigo vai me ajudar novamente!! Parabéns Mauda!

      Reply
      • Mauda says

        December 6, 2019 at 4:09 pm

        Olá Cezar, tudo bom?

        Massa! Boa sorte ai!

        Obrigado!

        Reply
  2. Yara says

    January 23, 2018 at 7:50 pm

    Realmente.. este artigo é muito didático. Adorei a explicação!

    Reply
    • Mauda says

      January 23, 2018 at 8:51 pm

      Olá Yara, tudo bom?

      Obrigado pelo feedback!

      Qualquer duvida estamos aqui!

      Obrigado.

      Reply
  3. CEZAR SILVA GOMES says

    February 28, 2018 at 4:28 pm

    Tava procurando isso. Valeu Mauda!

    Reply
    • Mauda says

      March 4, 2018 at 10:04 pm

      Olá Cezar, tudo bom?

      Legal! Precisando estamos aqui!

      Abs!

      Reply
  4. Luiz Lima says

    December 28, 2019 at 10:57 am

    Mauda, li o artigo pelo celular e ficou muito claro.
    Parabéns,
    Luiz Lima

    Reply
    • Mauda says

      March 12, 2020 at 7:04 pm

      Olá Luiz, tudo bom?

      Obrigado pelo feedback!

      Precisando estamos aqui!

      Abraços!

      Reply
  5. Thiago says

    April 20, 2022 at 8:19 am

    Olá ! Um dos melhores blogs sobre o tema. Parabéns. Tenho várias dúvidas. A primeira é em relação as versões, posso pegar a versão mais atualizada de todas as ferramentas ? Última versão do eclipse, java, jboss, jsf, … . Ou cada versão é compatível com outra específica ? Para as configurações dos arquivos web.xml, faces-config e pom.xml, aonde eu consigo documentação mais atualizada ? Em todas as ide’s o processo é o mesmo ? Pq parece que em cada uma o resultado muda, mas uma hora o erro aparece igual. Como saber as dependências corretas ?

    Reply
    • Mauda says

      April 23, 2022 at 10:33 am

      Olá Thiago, tudo bem?

      Obrigado pelo elogio.

      Sobre as dúvidas. Sim é possível pegar versões mais atualizadas. O problema só seria a compatibilidade entre elas.

      Eclipse pode ser pego a ultima versão sem problemas.

      Java, JBoss, Jsf e outras dependencias devem ser avaliadas de acordo com o seu projeto, evitando incompatibilidades.

      Para os arquivos xml citados depende do que você deseja fazer em seu projeto, por exemplo, quer atuar com JSF, vai precisar ver o web.xml, faces e talvez as dependencias que estão no pom relacionadas ao JSF. Tudo isso você poderá, por exemplo, olhar as especificações da Enterprise editon (https://javaee.github.io/javaserverfaces-spec/)

      Cada IDE possui processos diferentes, mas certas ferramentas são iguais, por exemplo, a configuração de dependências realizada via Maven é única para qualquer IDE.

      No mais, acredito que você está com várias dúvidas que não são tão relacionadas entre si. Se você estiver iniciando no mundo da programação vá aprendendo as coisas devagar, tentando entender as informações que você está recebendo.

      Precisando estamos por aqui.

      Obrigado.

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in