Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

maven ignoring jenv settings

I had OSX with Java 1.6 installed, and I just installed jenv along with Java 1.7:

$ jenv local '1.7' $ jenv versions   system   1.6   1.6.0.65 * 1.7 (set by /Users/me/workspace/.java-version)   1.7.0.79   oracle64-1.6.0.65   oracle64-1.7.0.79 

jenv is doing its job, with $ java -version always working, showing 1.6 when I've set it to 1.6, and 1.7 when I've set it to 1.7:

$ java -version java version "1.7.0_79"                    <--------------------------------- YAY!! Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) 

... but maven is ignoring my settings:

$ mvn -version Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500) Java version: 1.6.0_65, vendor: Apple Inc. <--------------------------------- BAH!! Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: en_US, platform encoding: MacRoman OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac" 

I found this SO question where the guy just needed to hardcode his JAVA_HOME inside .mavenrc, but I don't want mine hard-coded (thus jenv!), and I don't have a ~/.mavenrc, nor an /etc/mavenrc.

The version it's using seems to be from whatever's first on the /usr/libexec/java_home output, so in the short term I was able to get 1.6 back again by tweaking 1.7's Info.plist file (from this SO post), but that just means I get 1.6 instead of 1.7.

Any ideas?

like image 222
inanutshellus Avatar asked Jun 02 '15 17:06

inanutshellus


People also ask

What does JENV init do?

jenv is a cool tool that helps you switch between different java versions in your development machine.

What is. jenv?

jenv gives you a few critical affordances for using java on development machines: It lets you switch between java versions. This is useful when developing Android applications, which generally require Java 8 for its tools, versus server applications, which use later versions like Java 11.


2 Answers

You need to install the jenv maven plugin, try the following command and reload your shell:

jenv enable-plugin maven

like image 71
tenfourty Avatar answered Sep 24 '22 13:09

tenfourty


I had a similar problem. I got things running by prefixing all command with jenv exec:

jenv exec mvn -version 
like image 30
aautio Avatar answered Sep 24 '22 13:09

aautio