【Gradle】Windows環境でjmh-gradle-pluginの出力ファイルをUTF-8にする

TL;DR

  • gradle.propertiesorg.gradle.jvmargs-Dfile.encoding=UTF-8を指定するのが良さそう
  • jmh-gradle-pluginに指定する方法は無さそう

背景

jmh-gradle-plugin(me.champeau.gradle.jmh)は、環境に合わせた文字コードhumanOutputFileを出力します。
このため、何も指定しない場合Windows環境ではShift-JISで出力されます。

ここで、IntelijからhumanOutputFileを開く場合、この挙動によって±が文字化けし、コピペも難しくなる問題が有ります。

対処

C:\Users\${ユーザー名}\.gradlegradle.propertiesファイルを用意し、以下の内容を追記しました。

org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

重要なのは-Dfile.encoding=UTF-8オプションで、これによって出力の文字コードUTF-8になります。

jmh-gradle-plugin側のオプションも確認しましたが、出力ファイルの文字コードを変更するようなオプションは無いようでした。

補足: 指定内容について

この指定内容はGradle公式ドキュメントの以下の記述からコピーしたものです。

docs.gradle.org

この指定では、デフォルトより多くメモリを消費します。
自分のローカルではメモリ容量に余裕が有ったため、パフォーマンス向上を目的にこのオプションを指定しています。