Плагин Maven Checkstyle с google_checks и 4 пробелами indentSize
Я изучаю способы настроить google_checks для использования
4 spaces
в плагине maven Checkstyle. Я установил
indentSize
параметр конфигурации на 4, но он не работает. Есть ли параметры конфигурации, чтобы установить это? Я не хочу иметь свою версию
google_checks.xml
просто чтобы иметь отступ в 4 пробела.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<dependency>
<artifactId>checkstyle</artifactId>
<groupId>com.puppycrawl.tools</groupId>
<version>8.36.1</version>
</dependency>
</dependencies>
<configuration>
<configLocation>google_checks.xml</configLocation>
<indentSize>4</indentSize>
<failsOnError>true</failsOnError>
<consoleOutput>true</consoleOutput>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
Обновление: похоже, что нет единого формата, совместимого с
maven-checkstyle-plugin
,
Checkstyle with google_checks
и
Intellij with google_java_format
. Кто-нибудь смог этого добиться?
1 ответ
Обзор
В настоящее время Checkstyle не поддерживает такую композицию конфигурации.
Вот некоторые из связанных проблем с GitHub:
.
- Обратите внимание, что это активная проблема.
Обходной путь
Существует довольно простой обходной путь для отмены некоторых проверок файла конфигурации: разделите выполнение одного плагина Checkstyle Maven на два выполнения:
- Создайте первое выполнение, которое использует весь файл конфигурации и подавляет проверки, которые должны быть отменены.
- Создайте второе выполнение, которое использует настроенный файл конфигурации только с «переопределенными» проверками.
Этот обходной путь также объясняется здесь: создать концепцию наследования / переопределения и композиции / расширения конфигураций · Проблема № 2873 · checkstyle / checkstyleсоздание концепции наследования / переопределения и составления / расширения конфигураций · Проблема № 2873 · checkstyle / checkstyle : комментарий.
Пример, связанный с отступом (черновик)
Проект:
pom.xml
В
/build/pluginManagement/plugins
определение плагина:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.43</version>
</dependency>
</dependencies>
</plugin>
В
/build/plugins
определение плагина:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<id>check-google-checks</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<configLocation>google_checks.xml</configLocation>
<suppressionsLocation>maven-checkstyle-suppressions-google_checks.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
</configuration>
</execution>
<execution>
<id>check-custom-checks</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
<configuration>
<configLocation>maven-checkstyle-custom_checks.xml</configLocation>
</configuration>
</execution>
</executions>
<configuration>
<failsOnError>true</failsOnError>
<violationSeverity>warning</violationSeverity>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
</plugin>
Файл конфигурации Checkstyle:
maven-checkstyle-suppressions-google_checks.xml
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<suppressions>
<suppress checks="Indentation" files="." />
</suppressions>
Файл конфигурации Checkstyle:
maven-checkstyle-custom_checks.xml
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
<module name="Indentation">
<property name="basicOffset" value="4" />
<property name="braceAdjustment" value="4" />
<property name="caseIndent" value="4" />
<property name="throwsIndent" value="4" />
<property name="lineWrappingIndentation" value="4" />
<property name="arrayInitIndent" value="4" />
</module>
</module>
</module>