Go to file
2021-03-26 16:14:23 +03:00
conf Remove ImportOrder 2021-03-26 16:14:23 +03:00
.gitignore Initial commit (#1) 2021-01-21 16:07:57 +03:00
LICENSE Cleanup from maven (#5) 2021-01-28 18:43:43 +03:00
README.md Update README.md (#17) 2021-03-26 19:23:39 +07:00

java-checkstyle-config

Our check style config based on Google style

Usage example:

<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.41</version>
    </dependency>
  </dependencies>
  <executions>
    <execution>
      <id>validate</id>
      <phase>validate</phase>
      <configuration>
        <configLocation>${checkstyle.config.path}</configLocation>
        <encoding>UTF-8</encoding>
        <failsOnError>true</failsOnError>
        <consoleOutput>true</consoleOutput>
        <violationSeverity>warning</violationSeverity>
        <includeTestSourceDirectory>true</includeTestSourceDirectory>
        <suppressionsLocation>${checkstyle.config.suppressions.path}</suppressionsLocation>
      </configuration>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>

SuppressWarnings examples

First path — override ${checkstyle.config.suppressions.path} in project with checkstyle-suppressions.xml file and fill with your filters

pom.xml:

<properties>
    <checkstyle.config.suppressions.path>./src/main/resources/checkstyle/checkstyle-suppressions.xml</checkstyle.config.suppressions.path>
</properties>

checkstyle-suppressions.xml:

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
        "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
        "https://checkstyle.org/dtds/suppressions_1_0.dtd">

<suppressions>
        <suppress checks="LineLength"
                  files="AppConfig.java"
                  lines="0-9999"/>
</suppressions>

Other path — use @SuppressWarnings:

@SuppressWarnings({"checkstyle:%module_name%", "checkstyle:%module_name%""})

Example:

@SuppressWarnings({"checkstyle:parametername", "checkstyle:localvariablename"})

Написание исходного кода

Набор рекомендаций по подходу к написанию, оформлению и форматированию исходного кода на Java.

Оформление

Поддержание единого code style осуществляется за счет использования maven-checkstyle-plugin с настроенным под наc google style конфигом.

Вам не нужно вручную добавлять плагин в свой проект. Чаще всего, будет достаточно использовать подходящий parent pom.

Для Spring проекта:

<parent>
    <groupId>com.rbkmoney</groupId>
    <artifactId>service-parent-pom</artifactId>
    <version></version>
</parent>

Для любого другого java проекта:

<parent>
    <groupId>com.rbkmoney</groupId>
    <artifactId>library-parent-pom</artifactId>
    <version></version>
</parent>

Важно. Лучше если вы воспользуетесь нашим шаблонизатором для создания проектов rbk-templator. Это удобно, в том числе, для того чтобы не следить за последними версиями parent pom.

Важно. Если у вас цель модифицировать check style под свой проект - используйте property checkstyle.config.path с указанием пути до файла конфигурации:

<properties>
    <checkstyle.config.path>custom_google_checkstyle.xml</checkstyle.config.path>
</properties>

Форматирование кода в IntelliJ IDEA

Realtime проверка стиля

Для проверки стиля в realtime воспользуйтесь плагином

После установки плагина необходимо подключить наш файл конфигурации стилей. Это можно сделать в разделе Tools > CheckStyle, в настройках IDEA.

Intellij IDEA CodeStyle

Актуальный файл конфигурации стилей можно взять из нашего репозитория

Автоформатирование кода

Чтобы воспользоваться автоформатированием кода - импортируйте файл конфигурации стилей в Code Style вашей IntelliJ IDEA

Intellij IDEA CodeStyle Format

Далее вы можете использовать эту схему для конкретного проекта или глобально.

Форматирование осуществляется через вызов Code > Reformat Code в IDEA.

Важно. Если у вас на CI check style падает с ошибкой, а у себя в локальной среде вы не видите ошибок форматирования кода - убедитесь, что используете актуальный файл конфигурации стилей в IntelliJ IDEA

Краткое описание классов

В шапке каждого класса хорошим тоном будет указывать небольшое описание того, зачем этот класс нужен и что он делает.