事象
Gradle Checkstyle PluginでCheckstyleのタスクを実行した際に、 チェックエラーがあった場合、コマンドプロンプト上にエラーメッセージが表示される。
特に何も設定していない場合、下記の画像のように、エラーメッセージが文字化けしてしまうという事象が発生した。
文字化けしていない部分から、エラーがあったクラス、エラー行、エラーとなったチェックの名称が分かるので、そのままでも調査にそこまで影響はないが、
日本語のエラーメッセージが表示できるのであれば、あったに越したことがないので、解決方法を調査した。
プロジェクトのbuild.gradleは以下の通り
必要そうな記述のみ抜粋している。
plugins { id 'java' id 'eclipse' id 'checkstyle' id 'org.springframework.boot' version '2.7.10' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'jp.co.sample' version = '1.0.0' sourceCompatibility = '17' checkstyle { // 使用するCheckstyleのバージョン toolVersion = '10.3.1' // チェック違反がある場合ビルドを失敗させる ignoreFailures = false // チェック違反とする最小の警告数 maxWarnings = 0 // 定義ファイルのパス configFile = file("${rootDir}/config/checkstyle/checkstyle.xml") }
解決方法
gradle.properties
でタスク実行時のjvm引数にエンコーディングを追加する。
# Gradle実行時のjvm引数 # チェック失敗時のエラーメッセージが文字化けするため設定を追加 org.gradle.jvmargs = -Dfile.encoding=UTF-8