O jQana é um plugin Maven que verifica 3 importantes métricas em um projeto Java: Response For a Class, LCOM 4 (Lack of Cohesion in Methods - Hitz & Montazeri) e Complexidade Ciclomática (McCabe).
Ele funciona com o Apache Maven, podendo rodar sob o Maven 2 ou 3 sem problemas. Vamos dar umas dicas de como usar o plugin em seus projetos.
Para começar
O jQana, infelizmente, ainda não está espelhado no Repositório Central Maven. Isso porque eu ainda não tive tempo de configurar o projeto para isso. Aliás, estou procurando voluntários...
Então, para usar o jQana, você terá que configurar o repositório em seu "pom.xml". Um exemplo disso está na página LATEST VERSION, do jQana:
<pluginRepositories>
<pluginRepository>
<id>jqana-mvn-repo</id>
<url>https://raw.github.com/cleuton/jqana/mvn-repo/</url>
</pluginRepository>
</pluginRepositories>
Assim, quando o Maven não encontrar o plugin em seu repositório local (pasta ".m2"), ele vai procurar e baixar do meu repositório Maven, que fica no GitHub.
Não adianta tentar navegar para a URL do repositório, pois o GitHub costuma dar erro HTTP 400. Você tem que configurar no seu "pom.xml" e usar a partir de lá.
Maven 2
Se você usa Maven 2, então deve configurar o jQana na sessão "<reporting>" do seu "pom.xml":
<plugin>
<groupId>com.obomprogramador.tools</groupId>
<artifactId>jqana-maven-plugin</artifactId>
<version>0.0.6</version>
</plugin>
Maven 3
Se você usa Maven 3, então deve configurar o jQana dentro da sessão "<build>" do seu "pom.xml", dentro da configuração do plugin "maven-site-plugin":
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<encoding>${encoding.default}</encoding>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
<configuration>
<attach>true</attach>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>
maven-project-info-reports-plugin
</artifactId>
<version>2.7</version>
<configuration>
<dependencyDetailsEnabled>
false</dependencyDetailsEnabled>
<dependencyLocationsEnabled>
false</dependencyLocationsEnabled>
<reports>
<report>summary</report>
<report>dependencies</report>
<report>project-team</report>
<report>issue-tracking</report>
<report>scm</report>
<report>cim</report>
<report>modules</report>
<report>plugins</report>
</reports>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<sourceEncoding>utf-8</sourceEncoding>
<targetJdk>1.6</targetJdk>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.10</version>
</plugin>
<plugin>
<groupId>com.obomprogramador.tools</groupId>
<artifactId>jqana-maven-plugin</artifactId>
<version>0.0.6</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</build>
Relatório
O relatório do jQana sai dentro do "maven site", na parte "project reports", conforme a figura:Note que as métricas são agregadas de maneira diferente. A Complexidade Ciclomática é a média encontrada naquele nível (Classe, Pacote e Projeto), assim como o RFC. Já o LCOM 4 é o maior valor encontrado naquele nível.
Participe do projeto e contribua!
Nenhum comentário:
Postar um comentário