LoginSignup
35
7

More than 5 years have passed since last update.

MavenをJava 8で動かしつつコンパイルはJava 6、テストはJava 11で行う

Last updated at Posted at 2018-12-01

フレームワークを作ったりしていると後方互換の関係でJava 6でコンパイルしたいことがあります。
また、新規案件では古いJDKとか使わないのでコンパイルはJava 6でしたとしてもテストはJava 6・7・8・11で実施したかったりします。

最近のMavenはJava 6では動かないんですけど、工夫をすればMaven自体はJava 8で動かしつつコンパイルはJava 6、テストはJava 11で行うといったことが可能です。

maven-compiler-pluginexecutablejavacコマンドを指定することで任意のJDKでコンパイルができます。
それからmaven-surefire-pluginjvmjavaコマンドを指定することで任意のJDKでテストができます。
いずれもシステムプロパティで設定できます。

コマンド例はこんな感じ。

export JAVA_HOME=/path/to/jdk8
mvn -Dmaven.compiler.executable=/path/to/jdk6/bin/javac \
    -Dmaven.compiler.fork=true \
    -Djvm=/path/to/jdk11/bin/java \
    test

参考

35
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
7