日本語メソッド名を含むテストのPMD適用

GradleのPMD Pluginでは、日本語メソッド名を含むソースコードに対するPMDの実行でエラーが発生する(Windows)。
原因として、PMDがソースを読み込むときのエンコーディングシステムプロパティ依存であることが挙げられる。

以下のリンクのソースの16行目で、システムのエンコーディングでソースの読み込みをしているので、
システムのエンコーディングとソースのエンコーディングが合わない場合に、日本語が文字化けしていて失敗していた模様。

github.com

この問題については、issueにも挙げられてはいた。
しかし、特に設定の追加などは実施されることなく、クローズされている。

github.com

issueの中の記述にもある通り、gradle.propertiesでorg.gradle.jvmargs=-Dfile.encoding=UTF-8を記載すればPMDは動作することが確認できたが、
この設定はGradleタスク全体の設定になるので、一部のタスクのみで適用したい、というのが出来なかった。
(例えばCheckstyleでは、この設定があると、エラー理由をコンソール出力した際に文字化けしてしまう)

解決策

テストクラスでのみ日本語メソッド名が存在していたので、「pmdTest」タスクの最初の処理として、
システムプロパティにファイルエンコーディングを設定する処理を追加したところ、想定通りの動作をするようになった。

plugins {
    id 'java'
    id 'pmd'
}

pmd {
    sourceSets = [sourceSets.main, sourceSets.test]
    // pmd違反がある場合ビルドを失敗させる
    ignoreFailures = false
    // pmd結果をコンソール出力する
    consoleOutput = true
    // 定義ファイルのパス
    ruleSetFiles = files("${rootDir}/config/pmd/custom-rules.xml", "${rootDir}/config/pmd/custom-rules-test.xml")
    ruleSets = []
    // 使用するPMDのバージョン
    toolVersion = "6.51.0"
}

// 以下の記述を追加
pmdTest.doFirst {
    System.setProperty("file.encoding", "UTF-8")
}