Relatórios no Apache Maven : Informações do Projeto e Checkstyle

Neste artigo, vamos configurar alguns relatórios para ter uma visão mais concreta dos códigos JAVA produzidos.

Premissas

É interessante que antes de seguir com a leitura desse artigo, você tenha visto os 2 artigos anteriores:

Confira se seus arquivos POM estão como os abaixo:

Projeto POM

 <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/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion> <properties> <prop.resourcesDir>C:/apache-maven-2.1.0/www/resources</prop.resourcesDir> <prop.url>http://www.suaempersa.com.br</prop.url> <prop.organization>Sua Empresa</prop.organization> <prop.roleJavaDeveloper>Java Developer</prop.roleJavaDeveloper>  </properties>  <groupId>suaempresa</groupId>  <artifactId>pom</artifactId>  <version>1.1</version> <packaging>pom</packaging>   <reporting>  <outputDirectory>${prop.siteDir}/site/</outputDirectory>  </reporting>  </project> 

Projeto Base

 <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/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion> <properties> <prop.siteDir>C:/apache-maven-2.1.0/www/Base</prop.siteDir> <prop.srcMainJava>src/main/java</prop.srcMainJava>  </properties> <parent>  <groupId>suaempresa</groupId>  <artifactId>pom</artifactId>  <version>1.1</version>  </parent>   <groupId>suaempresa</groupId>  <artifactId>base</artifactId> <packaging>jar</packaging>  <version>1.0-SNAPSHOT</version>  <name>base</name>  <url>http://maven.apache.org</url>  <dependencies>  <dependency>  <groupId>junit</groupId>  <artifactId>junit</artifactId>  <version>3.8.1</version>  <scope>test</scope>  </dependency>  </dependencies>   <build>  <directory>${prop.siteDir}</directory>  <sourceDirectory>${prop.srcMainJava}</sourceDirectory>  <outputDirectory>${prop.siteDir}/target/classes</outputDirectory>  </build>  </project> 

Se as duas configurações estiverem similares, pode prosseguir sem medo.

Relatórios

Os relatórios no Maven são configurados como plugins. Existem vários plugins que gerão relatórios agregados ao site gerado.

Veja uma lista de plugins disponíveis para o Maven.

Configurando relatório “project-info-reports”

Este é um relatório padrão gerado pelo Maven (veja o que foi gerado no site anteriormente) que apresenta informações como:

  • Sumário
  • Dependências
  • Licença
  • Equipe do Projeto, etc

Porém, você pode customizar os itens que quer gerar. Para isso, adicione no Projeto POM (exatamente, adicione sempre no pom.xml do Projeto POM sempre que quiser que um relatório seja usado por todos os seus projetos) o trecho de código abaixo da tag “reporting” (como é o primeiro plugin, adicionaremos a tag “plugins”).

 <plugins> <plugin>  <artifactId>maven-project-info-reports-plugin</artifactId>  <reportSets>  <reportSet>  <reports>  <report>cim</report>  <report>dependencies</report>  <report>dependency-convergence</report>  <report>dependency-management</report>  <report>index</report>  <report>license</report>  <report>mailing-list</report>  <report>plugin-management</report>  <report>project-team</report>  <report>scm</report>  <report>summary</report>  </reports>  </reportSet>  </reportSets>  </plugin> </plugins> 

Altere a versão para 1.2.

Vá ao diretório do Projeto POM e digite “mvn install”.

Instalar POM versão 1.2, com relatório maven-project-info-reports-plugin

Instalar POM versão 1.2, com relatório maven-project-info-reports-plugin

Com o Projeto POM na versão 1.2, agora podemos gerar um novo site e verificar o relatório gerado.

Vá ao diretório do Projeto Base, atualize o arquivo pom.xml com a versão referente ao Projeto POM e digite “mvn site”. Um novo site será gerado. Porém, como adicionamos todos os relatórios disponíveis, você não verá diferença com o site gerado no artigo anterior.

Faremos a seguinte alteração: vamos remover alguns relatórios no Projeto POM e criar um novo site. Mantenha somente os relatórios abaixo.

 <reports>  <report>dependencies</report>  <report>index</report>  <report>plugin-management</report>  <report>project-team</report>  <report>summary</report> </reports> 

Pronto. Incremente para a versão 1.3 e gere um novo site, que deverá estar como a imagem abaixo.

Novo site com alguns relatórios base

Novo site com alguns relatórios base

Note que até agora fizemso alterações somente no Projeto POM, que é referenciado pelo Projeto Base. Essa é a idéia.

Configurando relatório “maven-checkstyle-plugin”

O Checkstyle provavelmente é um dos plugins do Maven mais utilizados. Ele propõe a “fofocar” sobre o estilo de código usado pelos desenvolvedores.

Para configurar este relatório, adicione o trecho abaixo no Projeto POM.

 <plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-checkstyle-plugin</artifactId> </plugin> 

Incremente para a versão 1.4 (Projeto POM e referência no Projeto Base) e gere um novo site, que deverá estar como a imagem abaixo.

Site agora com relatório Checkstyle

Site agora com relatório Checkstyle

Veja que foi adicionado a entrada “Project Reports” (abaixo de ‘Project Information”) com a entrada para o Checkstyle.

Os resultados do Checkstyle contemplam informações sobre:

  • Sumário: resumo sobre a quantidade de arquivos e ocorrências identificadas como informativos, avisos e erros.
  • Arquivos: resumo por arquivo.
  • Regras: a definição das regras do Checkstyle (pode ser customizado)
  • Detalhes: apresenta os itens relatados por arquivo, apresentado inclusive a linha da ocorrência.
Detalhes do Checkstyle do Projeto Base

Detalhes do Checkstyle do Projeto Base

As configurações do Checkstyle podem ser customizadas, mas não trataremos isso nesse artigo. Se tiver interesse, comente o artigo.

Conclusão

Este artigo apresentou os passos para configurar 2 plugins de relatórios do Maven. São relatórios iniciais para configurar em seus projetos corporativos.

Nos próximos artigos, relatórios mais “chatos” para os desenvolvedores: CPD e PMD.

Conteúdos relacionados

Leave a Reply