なる理系学生日記おまえはいつまで学生気分なのか2022-03-20MavenへのCheckstyleの組み込み基本的にJavaのエンジニアの多い会社に勤めているはずなのですが、そういえばCheckstyleを自分で設定したことがありませんでした。Checkstyleは、プロジェクトで定めたコーディング標準に従っているかを機械的にチェックしていくツールですね。いうわけで、今日はMavenからCheckstyleを実行できるようになるまで設定してみます。Javaを真面目に触るのは本当に久しぶりで、かなりリハビリ期間がかかりそうです。MavenまずMavenですが、Mavenにおけるビルトインのライフサイクルとしては以下の3つがあります。(buildとも呼ばれる)siteこのうち、Checkstyleを用いるのはdefaultライフサイクル、siteライフサイクルが代表的でしょう。プロジェクトのドキュメントやサイト構築のためのライフサイクルそれぞれのライフサイクルにどのようなフェーズが存在するかについては、Mavenの公式リファレンスで説明がされています。ゴールを組み込むかです。checkstyle:checkゴールは、Checkstyleを実行した上でコーディング違反を検知し、必要に応じてビルドを失敗させるという役割を担います。実際にどのフェーズに組み込むかについては、プロジェクトの開発プロセスに依存するところでしょう。verifyフェーズに紐づけることを示唆されていますが、決定的な話はありません。phase.Usageしかし、コーディング違反があるコードでテストをパスしたとしても、コーディング違反を修正した後で再テストを余儀なくされることが多いはずです。コーディング違反のようなフィードバックは、開発者として速やかに得たいという思いもあります。いう意味で、ぼくはvalidateに紐づけるのが良いであろうと考えました。以下のような設定を追加しました。v3.1.2は、デフォルトではCheckstyleの8.29を利用するようです。現時点でのCheckstyle最新版である10.0を利用するようにしました。使ってみたかったので、これを利用することにしました。google_checks.xmlはCheckstyle本体に組み込まれています。この設定は英語が前提となっており、日本語でJavadocを書いていくと以下のようなWarningが検知されてしまいます。javadocの最初の文に末尾のピリオドがありません。特定のルールだけ上書きできれば良いのですが、Checkstyleではルールの一部上書きはサポートされていません。このため、上記のファイルをファイルとしてダウンロードし、必要なところを上書きすることにしました。name="RequireEmptyLineBeforeBlockTagGroup"/>siteライフサイクルへの組み込みsiteライフサイクルへの組み込みは、単純にUsageにある以下の設定をいれただけですね。validate実行すると、想定通りCheckstyleでViolationを検知できています。コメントがありません。コメントがありません。コメントがありません。コメントがありません。[MissingJavadocMethod]監査が完了しました。コメントがありません。コメントがありません。コメントがありません。コメントがありません。QualityでCheckstyleのレポートを表示する何をするにも「わかりやすく表示する」というのは重要です。ExtensionのユニットテストでCoverageを取得する「上流から下流まで生成AIが変革するシステム開発」を読んだ「その仕事、AIエージェントがやっておきました。(1)はてなブログをはじめよう!kiririmodeさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。