Using Custom Checkstyle Property Expansion Definitions

Custom property expansion definitions for the Checker can be defined.

Checkstyle uses the property expansion mechanism to allow injection of specific values into a pre-defined Checker configuration. Using property expansion alone is an insufficient means to customize the checks performed by Checkstyle.

Example: checkstyle.xml - only checks the package name in use to ensure that it conforms to the desired scheme, but allows for users of this Checker to specify their own projectname.

<?xml version="1.0" ?>
<!DOCTYPE module PUBLIC
 "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN"
 "https://checkstyle.org/dtds/configuration_1_2.dtd">
<module name="Checker">
 <module name="TreeWalker">
 <module name="PackageName">
 <property name="format"
 value="com\.example\.$\{projectname\}(\.[a-z][a-zA-Z0-9]+)*$"/>
 </module>
 </module>
</module>

Example: pom.xml - Specifies the projectname property expansion that Checkstyle will use when encountering such a variable in the above Checker configuration.

<project>
 ...
 <reporting>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-checkstyle-plugin</artifactId>
 <version>3.6.0</version>
 <configuration>
 <configLocation>checkstyle.xml</configLocation>
 <propertyExpansion>
 projectname=whizbang
 anotherProperty=bazinga
 </propertyExpansion>
 </configuration>
 </plugin>
 </plugins>
 </reporting>
 ...
</project>

The property expansion information can also come from a location using the propertiesLocation parameter as shown below. The propertiesLocation can point to a URL, File or build classpath resource reference.

<project>
 ...
 <reporting>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-checkstyle-plugin</artifactId>
 <version>3.6.0</version>
 <configuration>
 <configLocation>checkstyle.xml</configLocation>
 <propertiesLocation>${basedir}/checkstyle.properties</propertiesLocation>
 </configuration>
 </plugin>
 </plugins>
 </reporting>
 ...
</project>

AltStyle によって変換されたページ (->オリジナル) /