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.
WSDL
==== ====
==== Web Services Description Language ====
==== ====
-> Serve para descrever em detalhe e pormenor todas as características de um Web Services
-> Parâmetros necessários para invocar o Web Service
-> Parâmetros de retorno esperados
-> XML format
->TAG: PORTTYPE
– The most important WSDL element.
– It describes a web service, the operations that can be performed, and the messages that are involved.
– Contem OPERATIONs dentro dele, pelomenos uma operation.
– Os PORTTYPE caracterizam o WS em abstracto
-> TAG: OPERATION
– Pode ser considerada como um metodo
– Metodo que vai ser quebrado em 2 (MESSAGES)
– Uma MESSAGE de ENTRADA ()
– Uma MESSAGE de SAIDA ()
-> TAG: MESSAGES
– Defines the data elements of an operation.
– Each message can consist of one or more parts
– The parts can be compared to the parameters of a function
->TAG: BINDING
– The communication protocols used by the web service
– Os bindings caracterizam o WS em concreto
– Atrelam o PORTTYPE ao SOAP em nosso caso
References
Wiki
http://en.wikipedia.org/wiki/Web_Services_Description_Language
Invoking Web services with Java clients
http://www.ibm.com/developerworks/webservices/library/ws-javaclient/index.html
Examples:
http://api.google.com/GoogleSearch.wsdl