Labs SD >

Ferramentas

As ferramentas para o desenvolvimento do projeto são: o Java (plataforma), Maven (construção), e o Eclipse (ambiente integrado de desenvolvimento).

Esta página contém textos introdutórios a cada uma das ferramentas e um exercício.

Em primeiro lugar, antes de começar, é necessário instalar o software.

 

Java

O Java Developer Kit (JDK) é um conjunto de ferramentas para programação na linguagem Java.
As mais importantes são o javac que compila os programas e o java que lança as aplicações.

javac e java são suficientes para construir pequenos programas, mas para programas de maior dimensão, é muito útil ter:

A tabela seguinte resume as utilizações mais comuns do JDK, Maven, e Eclipse:

A programação em Java para Sistemas Distribuídos deve ter em conta a concorrência e sincronização.
O tratamento de exceções é também um aspeto muito importante, e que irá ser especialmente importante para lidar com faltas de comunicação.

 

Maven

A ferramenta Maven é, talvez, a mais importante logo a seguir ao próprio JDK (sim, é mais importante que o Eclipse). Em Sistemas Distribuídos, a utilização do Eclipse é opcional, mas o Maven é considerado obrigatório.

O Maven desempenha o papel muito importante de automatizar toda a construção do código e de explicitar dependências de outros programas. Todos os programas devem ter a configuração Maven no ficheiro pom.xml - para que possam ser (re)construídos de forma repetível.

Para cada exemplo, estudar o código fonte e o ficheiro pom.xml.
Compilar e executar o programa através da linha de comando mvn, seguindo as instruções no ficheiro readme.txt.

JUnit

Para garantir a qualidade do código, é necessário produzir testes que incidem sobre diferentes módulos e aspetos das soluções.

O JUnit é uma biblioteca Java que ajuda a construir e executar testes ao código.

Exemplo e mais informação: JUnit

 

Eclipse

O Eclipse pode ser configurado por cima do JDK (Eclipse/JDK), ou então por cima também do Maven (Eclipse/Maven/JDK).

 


Exercício a resolver até ao fim da aula

Neste exercício vamos construir uma pequena aplicação java que, para já, apenas apresenta os argumentos e configurações que recebe. Estas técnicas são ilustrativas do que muitas vezes é necessário fazer nas nossas aplicações.

O Maven é uma ferramenta muito poderosa que facilita a gestão de dependências de um determinado projecto. Adicionalmente permite ainda automatizar a fase de compilação e de testes. No seguinte exercício iremos explorar alguns dos mecanismos que o Maven disponibiliza.

  1. Obter o exemplo MainApp ZIP
    1. Configurar o projecto no Eclipse (o readme.txt contém instruções mais detalhadas)
    2. Estudar o código fonte (pasta src) e o ficheiro pom.xml
    3. Compilar e executar o projecto. (Fazer mvn compile e depois mvn exec:java)

  2. Na pasta src/main/java/pt/tecnico/sd abrir a classe App
    1. Descomentar o código no método main() e voltar a compilar o projecto
    2. Há um erro, consegue perceber qual é?
    3. Abrir o ficheiro pom.xml e adicionar o seguinte excerto dentro da tag "<dependencies>" (Basta descomentar):

      <dependency>
          <groupId>pt.tecnico.sd</groupId>
          <artifactId>ConfigHelper</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </dependency

      Desta forma estamos a declarar que o projecto tem uma dependência do módulo ConfigHelper.
    4. Voltar a tentar compilar o projecto

  3. Há um novo erro, consegue perceber qual é?
    1. Obter o exemplo ConfigHelper ZIP
    2. Configurar o projecto no Eclipse (readme.txt com instruções mais detalhadas)
    3. Estudar o código fonte (pasta src) e o ficheiro pom.xml
    4. Para resolver o problema temos de disponibilizar a dependência ConfigHelper na máquina de desenvolvimento (fazer mvn install)
    5. Voltar a compilar o projecto MainApp e executá-lo

© Docentes de Sistemas Distribuídos, Dep. Eng. Informática, Técnico Lisboa