Checkstyleとは?
Javaのコーディング規約を自動でチェックする静的解析ツールです!
開発者の書いたコードが一貫したスタイルになっているかを確認し、
問題があれば警告やエラーを出力することが出来る便利な代物です。
Checkstyleのメリット
Checkstyle を導入することで、以下のようなメリットがあります。
1. コードの品質向上
一貫性のあるコーディングスタイルを維持でき、可読性が向上!
2. レビューの効率化
スタイルに関する指摘を自動化できるため、コードレビュー時余計な指摘を減らせる!
3. バグの防止
命名規則や不要なインポート、未使用の変数などを検出しバグの原因を撲滅!
4. CI/CD での自動化
自動化も可能です。
GitHub Actions等のCI/CD ツールを組み合わせることで、
コードの品質を自動でチェック可能です!
Checkstyleを適用してみよう
1. GradleプロジェクトにCheckstyleを導入
まず、build.gradle
(または build.gradle.kts
)に Checkstyle のプラグインを追加します。
Gradle (Groovy DSL)
plugins {
id 'java'
id 'checkstyle'
}
checkstyle {
toolVersion = '10.12.4'
configFile = file("config/checkstyle/checkstyle.xml")
}
Gradle (Kotlin DSL)
plugins {
java
checkstyle
}
checkstyle {
toolVersion = "10.12.4"
configFile = file("config/checkstyle/checkstyle.xml")
}
2. Checkstyleのルールを定義する
config/checkstyle/checkstyle.xml
に Checkstyle のルールを設定します。以下はシンプルな例です。
<?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"/>
</module>
<module name="LineLength">
<property name="max" value="120"/>
</module>
</module>
</module>
3. Checkstyleを実行する
以下のコマンドで Checkstyle を実行できます。
./gradlew checkstyleMain checkstyleTest
./gradlew check
を実行すると、Checkstyle 以外に
Lint チェックなども含めて確認できます!
GitHub Actions で自動化しよう
Checkstyle を GitHub Actions で自動実行し、コードの品質チェックを自動化することができます。
1. GitHub Actions ワークフローの作成
.github/workflows/checkstyle.yml
を作成し、以下の内容を追加します。
name: Checkstyle
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
checkstyle:
runs-on: ubuntu-latest
steps:
- name: リポジトリのチェックアウト
uses: actions/checkout@v4
- name: JDK 17 をセットアップ
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Gradle のキャッシュを設定
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: gradle-${{ runner.os }}
- name: Gradle の実行権限を付与
run: chmod +x gradlew
- name: Checkstyle を実行
run: ./gradlew checkstyleMain checkstyleTest
2. 実行結果を確認する
このワークフローを GitHub にプッシュすると、push
や pull_request
の際に Checkstyle が自動実行されます。
エラーがある場合、GitHub Actions のログにエラー内容が表示されます。
まとめ
- Checkstyle は Java のコード品質を維持するための静的解析ツール
- Checkstyle の導入 でコーディングスタイルの統一、レビューの効率化、バグの防止が可能
- Gradle に Checkstyle を追加し、ルールを設定することで簡単に適用可能
- GitHub Actions を活用すると、CI/CD パイプラインで自動化できる
Checkstyle を活用して、品質の高い Java コードを書きましょう!