maven ignoring jenv settings
Solution 1
You need to install the jenv maven plugin, try the following command and reload your shell:
jenv enable-plugin maven
Solution 2
I had a similar problem. I got things running by prefixing all command with jenv exec
:
jenv exec mvn -version
Solution 3
Now, there's a new option how to set JAVA_HOME via jenv export plugin:
jenv enable-plugin export
See https://github.com/gcuisinier/jenv/issues/44#issuecomment-233124185
Solution 4
If you have enabled the maven
and export
plugins, and still have problems, check that you don't have a ~/.mavenrc
file which is setting JAVA_HOME
.
inanutshellus
Software Engineer specializing in Java / JEE development. I'm an Aquarius, I like long walks on the beach and ... honestly, who reads this stuff anyway? Well you, apparently. Hi!
Updated on June 07, 2022Comments
-
inanutshellus about 2 years
I had OSX with
Java 1.6
installed, and I just installedjenv
along withJava 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 (thusjenv
!), 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'sInfo.plist
file (from this SO post), but that just means I get 1.6 instead of 1.7.Any ideas?
-
inanutshellus over 8 yearsAwesome! I think i'll
alias
it this way. Thanks! -
inanutshellus almost 7 yearsNot sure why it took me so long to notice this answer. This works like a charm! Much better than having to prefix everything. Thanks (even if belatedly)!
-
Hristo Stoyanov almost 6 yearsThis answer worked for my when the project was using mvnw wrapper
-
cspider about 5 yearsThank you, @tenfourty! This really helped. This worked for me when switching between different versions of Java for building projects with multiple JDKs for testing.
-
Bombe about 5 yearsI did have this enabled but it didn’t work. Turns out, jenv (as installed by Homebrew) uses a symlink in ~/.jenv/plugins and this pointed to an old jenv version. Fixed the link, fixed jenx, fixed Maven!
-
Sandeepan Nath about 4 yearsI needed to run jenv exec mvn -version. Only enabling the plugin didn't work for me.
-
jocull almost 4 yearsI had issues after a Homebrew (macOS) upgrade today where Maven wasn't respecting the configured JVM version. Not sure if a rehash and shell reload would have taken care of it, but disabling and reenabling the Maven plugin fixed it for sure.
-
jocull about 2 yearsSetting up a new machine today I ran into an issue where
jenv enable-plugin
resulted inno such command
. Addressed by runningjenv doctor
and resolving the issues found as suggested by github.com/jenv/jenv/issues/64#issuecomment-64396967