Checkstyle-Konventionen

1. Einleitung

Zur automatisierten Prüfung der Java-Programmierkonventionen stellt die IsyFact ein eigenes Checkstyle-Regelwerk bereit: das IsyFact Checkstyle Plugin (isy-checkstyle-config).

Das Regelwerk wird als Maven-Artefakt veröffentlicht und über das maven-checkstyle-plugin in den Build-Prozess eines Projekts integriert. Dadurch werden Verstöße gegen die Programmierkonventionen bereits während des Builds erkannt.

2. Integration

2.1. Integration über den Maven-Parent

Wird eines der folgenden Maven-Parent-Module verwendet, ist isy-checkstyle-config bereits vorkonfiguriert und es sind keine weiteren Schritte notwendig:

Modul Version

isyfact-standards

≥ 2.2.0

isyfact-erweiterungen

≥ 2.1.1, ≥ 1.8.2

2.2. Manuelle Integration als Plugin-Konfiguration

Wird kein passender Parent verwendet, kann isy-checkstyle-config direkt über das maven-checkstyle-plugin eingebunden werden:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
                <configLocation>checkstyle.config.xml</configLocation>
                <encoding>UTF-8</encoding>
                <consoleOutput>true</consoleOutput>
                <failsOnError>true</failsOnError>
                <linkXRef>false</linkXRef>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>de.bund.bva.isyfact</groupId>
                    <artifactId>isy-checkstyle-config</artifactId>
                    <version>0.2.0</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>validate</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Die Prüfung wird dabei in der Maven-Phase validate ausgeführt und bricht den Build bei Regelverstößen ab (failsOnError=true).

3. Zusammenspiel mit dem Formatter

Die Checkstyle-Regeln sind mit dem IsyFact-Formatter für Java abgestimmt. Wird der Formatter verwendet, sollte der resultierende Quellcode ohne Checkstyle-Verstöße bleiben. Es empfiehlt sich daher, beide Werkzeuge gemeinsam einzusetzen: den Formatter zur Formatierung während der Entwicklung und Checkstyle zur automatisierten Prüfung im Build.

4. Versionierung und Änderungen

Das Regelwerk wird nach den IsyFact-Versionierungsvorgaben versioniert. Änderungen an den Regeln werden im Changelog des Plugins dokumentiert.