久々にmvn使おうとしたらJAVA_HOMEの指定でハマったので備忘録がてらメモ。
mvn cleanすっぞ!
High Sierraにアップデートしたら仕事で使ってるJavaプロジェクトの依存関係がリセットされていたので、とりあえずmvn cleanすっかと思った矢先
$ mvn clean
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE
えええええ
どうやら環境変数のJAVA_HOMEが悪いらしい。
どう設定してたっけ。
フルパスじゃん
$ cat ~/.bash_profile
...
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
$ java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
フルパスで指定してるので、JDKのバージョンアップした途端無意味な環境変数に早変わり。
むしろよく今まで無事だったもんだ。
もっと頭のいい設定方法があるはず
どうやらこの記法ならJDKをバージョンアップしても自動で追ってくれるらしい
このパスで保存してっと...
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
結果
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
$ mvn -v
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T16:58:13+09:00)
Maven home: /usr/local/Cellar/maven/3.5.2/libexec
Java version: 1.8.0_172, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"
無事設定完了です。
大体コピペで済ませていましたが、環境変数も気をつけないとハマりますね。