Is there any automated metrics collector for my Java project?
Asked Answered
B

3

8

I'm trying to collect software code metrics in my Java project on every cycle of continuous integration. I'm interested mostly in size-related metrics like number of classes, number of methods, function points, lines of code, etc. I would like to get a summary report with these metrics in some XML file. Later I will use it in project report, or somehow else.

Is there any free open-source tool which I can integrate with Maven for this purpose?

Briefless answered 26/10, 2010 at 15:57 Comment(2)
Function points? Good luck with automating that! en.wikipedia.org/wiki/Function_pointConcertmaster
Apparantly the software metrics community can compute function points from code metrics by so-called "backfiring", basically multiplying by a constant factor that empirically relates code metrics values to function points. Check out Capers Jones book: Applied Software Measurement amazon.com/gp/product/0071502440/ref=oss_productVagabond
D
7

One good option is Sonar.

Its primary purpose is to manage technical debt, so it does a lot of things you don't need, but it provides really good metrics.

You can integrate it with Hudson or whatever other continuous integration system you are using.

Dunc answered 26/10, 2010 at 16:1 Comment(3)
+1 Hudson supports Maven, which has a Sonar plugin. The makes it trivial to get Hudson to run a sonar analysis nightly.Interlocution
Not just nightly, you can have it run on every commit. That is how we use it and it works great.Dunc
Well, so does your Hudson server, your Maven repo, etc etc.. not a big deal.Chem
C
4

Take a look at the javancss-maven-plugin.

JavaNCSS is a source measurement suite for Java which produces quantity & complexity metrics for your java source code.

This plugin provides the capability to run the JavaNCSS tool on your Maven 2 project sources and produce an html report. Optionally you can fail the build whenever one of the metrics goes beyond a fixed limit.

Chem answered 26/10, 2010 at 16:0 Comment(4)
NCSS stands for "Non Commenting Source Statements". Took me a while to work out :)Abiding
JavaNCSS is an old tool that doesn't handle correctly the syntax introduced by Java 1.5. Sonar is a far better alternative, and since 1.9 it bundles its own JavaNCSS-like tool, called Sonar Squid.Granduncle
@romaintaz Sonar is excellent but I'm not sure that you're right about JavaNCSS: the homepage lists support for 1.5/generics syntax.Chem
@matt_b Annotations and Generics are in fact partially supported. JavaNCSS does not handle nested classes. That's why I said that this tool is a not up to date. Have a look here: sonarsource.org/…Granduncle
E
1

I'll throw in XRadar which provides similar functionality to Sonar.

Ewens answered 26/10, 2010 at 17:6 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.