2010-10-26 11 views
8

Ich versuche, Software Code-Metriken in meinem Java-Projekt in jedem Zyklus der kontinuierlichen Integration zu sammeln. Ich interessiere mich hauptsächlich für größenbezogene Metriken wie Anzahl der Klassen, Anzahl der Methoden, Funktionspunkte, Codezeilen usw. Ich möchte einen zusammenfassenden Bericht mit diesen Metriken in einer XML-Datei erhalten. Später werde ich es im Projektbericht oder sonst irgendwie verwenden.Gibt es einen automatischen Metrik-Collector für mein Java-Projekt?

Gibt es ein kostenloses Open-Source-Tool, das ich zu diesem Zweck in Maven integrieren kann?

+0

Funktionspunkte? Viel Glück bei der Automatisierung! http://en.wikipedia.org/wiki/Function_point –

+0

Offensichtlich kann die Software-Metrik-Gemeinschaft Funktionspunkte aus Code-Metriken durch sogenanntes "Back-Firing" berechnen, das im Grunde mit einem konstanten Faktor multipliziert, der Code-Metrik-Werte empirisch mit Funktionspunkten in Beziehung setzt. Schauen Sie sich Capers Jones Buch an: Applied Software Measurement http://www.amazon.com/gp/product/0071502440/ref=oss_product –

Antwort

7

Eine gute Option ist Sonar.

Sein Hauptzweck ist es, technische Schulden zu verwalten, so dass es eine Menge Dinge tut, die Sie nicht brauchen, aber es bietet wirklich gute Metriken.

Sie können es mit Hudson oder einem anderen System zur kontinuierlichen Integration integrieren, das Sie verwenden.

+0

+1 Hudson unterstützt Maven, das ein Sonar-Plugin hat. Das macht es trivial, Hudson jede Nacht eine Sonaranalyse durchführen zu lassen. – Qwerky

+0

Nicht nur nächtliche, Sie können es bei jedem Commit laufen lassen. So benutzen wir es und es funktioniert super. –

+0

Die negative Seite ist, dass "Sonar Server" muss laufen. – yegor256

4

Werfen Sie einen Blick auf die javancss-maven-plugin.

JavaNCSS ist eine Source-Measurement-Suite für Java, die eine Menge von & Komplexitätsmetriken für Ihren Java-Quellcode erzeugt.

Dieses Plugin bietet die Möglichkeit, das JavaNCSS-Tool in Ihren Maven 2-Projektquellen auszuführen und einen HTML-Bericht zu erstellen. Optional können Sie den Build abbrechen, wenn eine der Metriken über ein festes Limit hinausgeht.

+2

NCSS steht für "Non Comment Source Statements". Nahm mich eine Weile, um auszuarbeiten :) – dogbane

+0

JavaNCSS ist ein altes Tool, das nicht korrekt die Syntax von Java 1.5 behandelt. "Sonar" ist eine viel bessere Alternative, und seit 1.9 bündelt es sein eigenes * JavaNCSS-ähnliches * Werkzeug, genannt "Sonar Squid". – romaintaz

+0

@Romaintaz Sonar ist ausgezeichnet, aber ich bin mir nicht sicher, dass Sie Recht haben mit JavaNCSS: [die Startseite] (http://www.kclee.de/clemens/java/javancss/) listet Unterstützung für 1.5/Generics-Syntax. –

1

Ich werde XRadar werfen, die ähnliche Funktionalität zu Sonar bietet.