sonar-maven-checks

- Plugin for Sonar -
Lars K.W. Gohlke

supported by

initiale use-case

Softwarealterung

transparent machen

Status Quo

Softwareprojekt mit vielen Abhängigkeiten,
die sich dauernd weiter entwickeln

 
Software veraltet, ohne dass man es merkt

Warum ist das ein Problem?

  • Software besteht aus lose gekoppelten Modulen
  • Kopplung erfolgt über Versionen
  • Module entwickeln sich auseinander
  • es entstehen Inkompatibilitäten
    • z.B. Datenbank fällt aus
    • z.B. Datenmapping scheitert
    • z.B. Sicherheitslücken bleiben offen

Müssen wir uns noch damit ärgern?

Lösungen

  • Variante 1: manuell prüfen
  • Variante 2: Aktualisierungen melden lassen
  • Variante 3: automatische Aktualisierungen

Vorweg: Variante 2 wurde umgesetzt

Variante 1:

manuell prüfen

  • zeitaufwendig
  • langwierig
  • wird gern vergessen

 

Variante 2:

Aktualisierungen melden lassen

  • Plugin für Sonar
  • Aktualisierungen als Violations

Sonar

Sonar is an open platform
to manage code quality.

Architektur

Sonar Plugin

Basis ist Versions Maven Plugin http://mojo.codehaus.org/versions-maven-plugin

Versions Maven Plugin


$ mvn versions:display-dependency-updates
[..]
[INFO] The following dependencies [..] have newer versions:
[INFO] org.projectlombok:lombok ..................... 0.11.6
[INFO] org.testng:testng ............................ 6.8.1
[..]
                        

screenshots - violations

screenshots - violation details

screenshots - quality profile

screenshots - violation config

Limitation

  • nur mit sonar-maven-plugin
  • nicht mit Maven2

Plugin Architektur

weitere Maven Plugins integrierbar

infos

Variante 3:

automatische Aktualisierungen

das schöner verpacken
$ mvn versions:use-next-versions

Ideen:

  • iterative CI-Läufe mit neuer Version
  • commit nach letzten erfolgreichem Lauf
  • whitelists/blacklist Filter

Let the machines do the work!

automatische Aktualisierungen

Wer macht mit?

Fragen?

contact

THE END

BY Lars K.W. Gohlke / www.lgohlke.de