3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

〜自動化まで〜 Checkstyleでコードの品質を上げよう!

Posted at

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 にプッシュすると、pushpull_request の際に Checkstyle が自動実行されます。

エラーがある場合、GitHub Actions のログにエラー内容が表示されます。

まとめ

  • Checkstyle は Java のコード品質を維持するための静的解析ツール
  • Checkstyle の導入 でコーディングスタイルの統一、レビューの効率化、バグの防止が可能
  • Gradle に Checkstyle を追加し、ルールを設定することで簡単に適用可能
  • GitHub Actions を活用すると、CI/CD パイプラインで自動化できる

Checkstyle を活用して、品質の高い Java コードを書きましょう!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?