日々精進

新しく学んだことを書き留めていきます

gradleでJDK1.8を使ってJava7のコードをコンパイル・・・できなかった

java pluginによってcompileJavaタスクができるのでその設定を追加する。

compileJava {
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    options.bootClasspath = "${System.getenv()['JAVA7_HOME']}/jre/lib/rt.jar"
}

bootClasspathにJDK1.8を指定するとJava8の新仕様のコンパイルが通ってしまったので、 やっぱりJDK1.7を使ってビルドしないといけないっぽい。1.8と1.7が両方インストールしてあって、 1.7を使ってビルドしたいという場合にはこの設定は有効だろう。

ちなみにgradleのwar pluginはjava pluginを拡張して実装されているのでwar pluginを使っている場合でも同様に設定可能。

参考: