image:https://travis-ci.org/gabrielsr/bomberman.svg?branch=master["Build Status", link="https://travis-ci.org/gabrielsr/bomberman"] image:http://img.shields.io/coveralls/gabrielsr/bomberman/master.svg["Coverage Status", link="https://coveralls.io/r/gabrielsr/bomberman?branch=master"]
Projeto em Desenvolvimento de um Bomberman clone utilizando programação modular, desenvolvido como projeto da disciplina:
Programação Sistemática
Universidade de Brasília - UnB
2/2014
= Instruções para Montagem de Ambiente de Desenvolvimento
== JDK8 o compilador e máquina virtual
Instale o JDK8: http://www.oracle.com/technetwork/java/javase/downloads/index.html
== Eclipse (Luna) a IDE http://eclipse.org/downloads/packages/eclipse-standard-44/lunar
== Gradle a Ferramenta de Gerencia de Dependências e Build
Gradle é um sitema de gerencia de dependência. Iremos utiliza-lo para obter a o JUnit inicialmente depois iremos incrementar com outras bibliotecas.
=== Gradle Eclipse plugin
O plugin gradle do eclipse facilitar a montarmos o projeto, pois inclui as dependencias configurados no gradle diretamente na interface
No Eclipse vá em
Help>Marketplace
Digite no campo search: Gradle Integration
Escolha Gradle Integration for Eclipse (4.4) 3.6.0.RELEASE
Confirme. Ao final da instalação reinicie o Eclipse.
== Importanto o projeto no Eclipse
Go to File -> Import -> Gradle -> Gradle Project, navega até a pasta root deste projeto. Selecione [Build Model]
OBS: a importação pode demorar vários minutos na primeira vez que for realiza pois será realizado download das dependências do Gradle.
Após a conclusão da importação você deverá visualizar o projeto assim:
[[img-eclipse_pacotes]] .Visualização de Pacotes após importação bem sucedida no Eclipse image::/docs/img/eclipse_pacotes.png[]
TIP: Caso o eclipse esteja exibindo o projeto diferente disso provavelmente aconteceu um erro na importação. Tente novamente.
=== Compilando no Eclipse
O mais comum é trabalhar no Eclipse com compilação automática de código, o que quer dizer que a medida que você digita novas linhas em classes já existentes ou cria novas classes o Eclipse automaticamente compila para você exibe os erros próximos as linhas em que ocorreram como sinais vermelhos. Ao posicionar o cursor próximo aos erros é exibido um detalhamento do problema.
Para verificar se o Eclipse está configurado para realizar build automático vá ao menu Project -> Build Automatically.
=== Outros plugins
=== Checkstyle Eclipse plugin
No Eclipse vá em
Help>Marketplace
Digite no campo search: Checkstyle
Escolha Checkstyle Plug-in 5.7.0 Confirme. Ao final da instalação reinicie o Eclipse.
Foi criado um uma regra customizada para atender nossas demandas atuais de limpeza de código, custom_checks_bomberman.xml, que se encontra no diretório raiz do projeto.
Para usá-la no Eclipse, deve-se baixar o plugin do checkstyle (disponível na marketplace), ir em Eclipse >> Preferências >> Checkstyle >> New
Na Tela que vai aparecer, dê um nome qualquer para esse conjunto de regras (sugiro o nome abaixo), clique em import e selecione o arquivo custom_checks_bomberman.xml
[[img-checkstyle_import]] .Tela de importação das regras customizadas image::/docs/img/checkstyle_import.png[]
Ao voltar para a página de configuração do checkstyle, clique na regra customiada e em seguida em "Set as Default"
=== Findbugs plugin
No Eclipse vá em
Help>Marketplace
Digite no campo search: Findbugs
Escolha Findbugs Eclipse Plugin 3.0.0 Confirme. Ao final da instalação reinicie o Eclipse.
== Integração Contínua & Cobertura dos testes
A cada push para o repositório, é feito um build completo do projeto, executando os testes e verificando se as modificações inseriram alguma falta ou quebraram algum teste.
Para verificar o status das últimas construções, entre no link: https://travis-ci.org/gabrielsr/bomberman/builds
Além disso, após o build é feita uma análise da cobertura dos testes, usando as ferramentas http://cobertura.github.io/cobertura/[Cobertura] e http://www.eclemma.org/jacoco/[Jacoco]. Para ver os resultados dos últimos testes, entre no link: https://coveralls.io/r/gabrielsr/bomberman
= Referencias == Padrões Utilizados