MSYS2とsbtの設定

sbt(Windows MSI版)とMSYS2の組み合わせで、JVMオプションを指定したい場合、.bashrcで以下のように指定するのが無難っぽい。

alias sbt="JAVA_OPTS='-Xms512M -Xmx1G -XX:ReservedCodeCacheSize=256M -Dinput.encoding=Cp1252' sbt"

${SBT_HOME}bin/sbt のソースを読む限り、conf/sbtconfig.txtは使われていないし、SBT_OPTSでの指定だと適用順の問題でメモリ設定が上書きされてしまうので、この設定に至った。これなら、カレントディレクトリに.sbtoptsファイルが置いてあれば、そちらの設定も優先される。

-Dinput.encoding=Cp1252は、始める sbt — 手動インストールを参照。

また、sbtの起動オプションに -Dfile.encoding=UTF-8指定しないのがポイント。これを指定してしまうと、コンソールで文字化けしてしまうので、以下のようにbuild.sbtでエンコーディングを指定するほうがよさそう。

javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-encoding", "UTF-8"),
scalacOptions ++= Seq("-encoding", "UTF-8")