maven ignoring jenv settings

13,311

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.

Share:
13,311
inanutshellus
Author by

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, 2022

Comments

  • inanutshellus
    inanutshellus about 2 years

    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?

  • inanutshellus
    inanutshellus over 8 years
    Awesome! I think i'll alias it this way. Thanks!
  • inanutshellus
    inanutshellus almost 7 years
    Not 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
    Hristo Stoyanov almost 6 years
    This answer worked for my when the project was using mvnw wrapper
  • cspider
    cspider about 5 years
    Thank 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
    Bombe about 5 years
    I 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
    Sandeepan Nath about 4 years
    I needed to run jenv exec mvn -version. Only enabling the plugin didn't work for me.
  • jocull
    jocull almost 4 years
    I 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
    jocull about 2 years
    Setting up a new machine today I ran into an issue where jenv enable-plugin resulted in no such command. Addressed by running jenv doctor and resolving the issues found as suggested by github.com/jenv/jenv/issues/64#issuecomment-64396967