Apache Maven – Relatórios
Os relatórios gerados pelo Maven são recursos disponíveis para visualizar o estado atual de um projeto. Existem vários relatórios disponíveis.
Relatórios sobre o Projeto
O Maven não mantém um conjunto de relatórios padrões para geração. Todos os relatórios são “plugáveis”. Isso significa que a instituição pode definir quais relatórios podem ser gerados para o site de seu projeto.
Os relatórios comumente utilizados são:
A lista dos plugins disponíveis para o Maven pode ser encontrada em:
Changelog
Este relatório é utilizado para verificar os detalhes das recentes alterações em código (ação de “commit”) realizadas pelos membros sobre os arquivos do projeto em um intervalo de tempo definido.
Possui três finalidades:
- Changelog: apresentar informações sobre os arquivos do projeto sincronizados por cada membro no CVS;
- Dev Activity: apresentar informações consolidadas sobre a sincronização dos arquivos no CVS pelos membros do projeto;
- File Activity: apresentar informações consolidadas sobre a sincronização dos arquivos no CVS.
Por padrão, são apresentados os resultados referentes aos últimos 30 dias.
Este relatório é integrado com o CVS e gerado automaticamente.
Para mais detalhes, clique aqui.
Changes
Este relatório é utilizado para verificar os detalhes das versões do projeto (ação “Tag as Version”).
As informações apresentadas neste relatório são definidas manualmente no arquivo “changes.xml”.
É possível definir endereços de e-mail para receber uma notificação das alterações realizadas (opcional).
Para mais detalhes, clique aqui.
Checkstyle
Este relatório é utilizado para verificar o estilo de codificação dos arquivos.
Por padrão, é utilizado o estilo de codificação sugerido pela SUN (tudo é capturado como “Errors”). No entanto, é possível personalizar os tipos de checagem.
As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.
Para mais detalhes, clique aqui.
CPD
Este relatório é utilizado para verificar a existência de códigos duplicados.
As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.
Para mais detalhes, clique aqui.
PMD
Este relatório é utilizado para verificar a existência de possíveis bugs, códigos não usados, códigos que podem ser substituídos por códigos mais otimizados, códigos desnecessários e códigos duplicados.
As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.
Para mais detalhes, clique aqui.
Dashboard
Este relatório agrega as informações geradas pelos relatórios Checkstyle, Cobertura, Surefire, PMD e CPD.
Para que este relatório seja gerado, é necessário adicionar a linha de código abaixo:
mvn site -Djava.awt.headless=true
Para mais detalhes, clique aqui.
FindBugs
Este relatório é utilizado para apresentar os possíveis problemas (bugs) no código, separados em categorias como:
- Código malicioso
- Má Prática
- Internacionalização
- Performance, dentre outras.
As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.
Para mais detalhes, clique aqui.
JavaDocs
Este relatório apresenta a documentação gerada para todas os pacotes, classes e interfaces existentes no projeto.
Para mais detalhes, clique aqui.
JDepend
Este relatório é utilizado para verificar as métricas de qualidade para cada pacote de código do projeto, a fim de medir a qualidade do design em termos de extensibilidade, reusabilidade e manutenibilidade para controlar as dependências entre os pacotes.
As principais informações relativas aos pacotes são:
- Number of Classes: número total de classes;
- Concrete Classes: número total de classes concretas;
- Abstract Classes: número total de classes abstratas e interfaces;
- Afferent Couplings: qual o impacto de alterações nas classes do atual pacote para as classes dos outros pacotes do projeto?
- Efferent Couplings: qual o impacto de alterações nas classes dos outros pacotes do projeto nas classes do pacote atual?
- Abstractness: porcentagem relativa ao número de classes abstratas do pacote;
- Instability: quanto mais o pacote atual depende de outros pacotes do sistema, mais instável ele é;
- Distance: a relação entre o pacote e “abstractness” e “instability”, ou seja, o pacote é mais abstrato (0) ou instável (1);
- Cycles: pacotes ciclicamente dependentes.
A intenção desse relatório é mostrar o quanto os pacotes e classes são interdependentes. A principal causa dessa dependência é o fato de existir classes concretas utilizando outras classes concretas de pacotes distintos.
Para mais detalhes, clique aqui.
Tag List
Este relatório é utilizado para verificar as marcações “TODO” existentes no código. É possível personalizar as marcações a serem verificadas (marcações “FIXME” e “@deprecated”, por exemplo).
Para mais detalhes, clique aqui.