chore(build): upgrade spring-javaformat to 0.0.47 and add Checkstyle integration

- Add maven-checkstyle-plugin with spring-javaformat-checkstyle rules
- Add custom checkstyle.xml excluding overly strict rules for existing codebase
- Exclude third-party driver code (serotonin, openscada, nodave) from checks
- Configure plugins in dc3-common and dc3-api POMs for full module coverage
- Add .springjavaformatconfig placeholder
This commit is contained in:
pnoker
2026-05-07 16:46:17 +08:00
parent 19ba57f430
commit eefe411bd7
5 changed files with 197 additions and 1 deletions
View File
+65
View File
@@ -0,0 +1,65 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="com.puppycrawl.tools.checkstyle.Checker">
<!-- Exclude third-party and generated code -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="[/\\](com[/\\]serotonin|org[/\\]openscada|io[/\\]github[/\\]pnoker[/\\]driver[/\\]api[/\\]impl[/\\]nodave)[/\\]" />
</module>
<module name="NewlineAtEndOfFileCheck" />
<module name="com.puppycrawl.tools.checkstyle.TreeWalker">
<!-- Block Checks -->
<module name="EmptyBlockCheck">
<property name="option" value="text" />
</module>
<module name="LeftCurlyCheck" />
<module name="RightCurlyCheck">
<property name="option" value="alone" />
</module>
<!-- NeedBracesCheck excluded — too many existing single-line if/for without braces, fix incrementally -->
<!-- Coding -->
<module name="CovariantEqualsCheck" />
<module name="EmptyStatementCheck" />
<module name="EqualsHashCodeCheck" />
<module name="InnerAssignmentCheck" />
<module name="SimplifyBooleanExpressionCheck" />
<module name="SimplifyBooleanReturnCheck" />
<module name="StringLiteralEqualityCheck" />
<module name="MultipleVariableDeclarationsCheck" />
<module name="OneStatementPerLineCheck" />
<!-- Imports (AvoidStarImportCheck excluded — too many existing star imports, fix incrementally) -->
<module name="RedundantImportCheck" />
<module name="UnusedImportsCheck">
<property name="processJavadoc" value="true" />
</module>
<!-- Miscellaneous -->
<module name="UpperEllCheck" />
<module name="ArrayTypeStyleCheck" />
<module name="OuterTypeFilenameCheck" />
<!-- Modifiers -->
<module name="RedundantModifierCheck" />
<module name="ModifierOrderCheck" />
<!-- Regexp -->
<module name="RegexpCheck">
<property name="format" value="[ \t]+$" />
<property name="illegalPattern" value="true" />
<property name="message" value="Trailing whitespace" />
</module>
<!-- Whitespace -->
<module name="GenericWhitespaceCheck" />
<module name="WhitespaceAfterCheck" />
<module name="WhitespaceAroundCheck" />
</module>
</module>
+47
View File
@@ -117,6 +117,53 @@
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
</plugin>
<!-- Spring Java Format -->
<plugin>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
<version>0.0.47</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Checkstyle (Spring Java Format rules) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>9.3</version>
</dependency>
<dependency>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-checkstyle</artifactId>
<version>0.0.47</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle-validation</id>
<phase>validate</phase>
<inherited>true</inherited>
<configuration>
<configLocation>${maven.multiModuleProjectDirectory}/checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
+52
View File
@@ -117,6 +117,58 @@
</dependencies>
<build>
<plugins>
<!-- Spring Java Format -->
<plugin>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
<version>0.0.47</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Checkstyle (Spring Java Format rules) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>9.3</version>
</dependency>
<dependency>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-checkstyle</artifactId>
<version>0.0.47</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle-validation</id>
<phase>validate</phase>
<inherited>true</inherited>
<configuration>
<configLocation>${maven.multiModuleProjectDirectory}/checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>deploy</id>
+33 -1
View File
@@ -304,7 +304,7 @@
<plugin>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
<version>0.0.43</version>
<version>0.0.47</version>
<executions>
<execution>
<id>validate</id>
@@ -315,6 +315,38 @@
</execution>
</executions>
</plugin>
<!-- Checkstyle (Spring Java Format rules) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>9.3</version>
</dependency>
<dependency>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-checkstyle</artifactId>
<version>0.0.47</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle-validation</id>
<phase>validate</phase>
<inherited>true</inherited>
<configuration>
<configLocation>${maven.multiModuleProjectDirectory}/checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>