无法让 Maven 识别 Java 1.8

2022-08-31 13:35:40

我似乎无法让Maven使用Java 1.8。使用 1.8 作为目标会出现以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
(default-compile) on project csaro: Fatal error compiling: invalid target
release: 1.8 -> [Help 1]

错误的原因很明显:Maven没有使用正确版本的Java:

$ mvn -version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T07:51:42-06:00)
Maven home: /usr/local/Cellar/maven/3.2.2/libexec
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"

但是安装的Java版本应该是1.8:

$ java -version
java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b22)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b21, mixed mode)

并设置JAVA_HOME:

$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

我还尝试了此处的命令(创建)。我尝试了几次重新启动计算机,并验证了 env var 是否已正确设置(设置在 中)。mavenrc.bash_profile

Maven 与 Homebrew 一起安装。

Java 1.8在Eclipse(使用m2e)中工作正常。我只是无法让Maven在命令行上工作。


答案 1

对我来说,问题是当我从安装安装时,没有将目录链接更新到新的1.8 JDK。这可能不是原始问题的问题,但是当我遇到相同的错误消息时,它是我的解决方案。jdk-8u25-macosx-x64.dmg/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

我不知道为什么安装程序没有链接它,并且为了使事情更加混乱,路径是不同的,具体取决于您是从Oracle还是Apple安装的。请参阅 Mac OS X 10.6.7 Java 路径当前 JDK 令人困惑

我执行以下操作来修复我的环境

cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/<installed_jdk_version>.jdk/Contents CurrentJDK

答案 2

事实证明,我有一个被遗忘的文件,该文件设置了 的值。~/.mavenrcJAVA_HOME

对于将来的读者,请检查以下位置,了解可能覆盖的位置(按优先级升序排列):JAVA_HOME

  • ~/.bash_profile
  • ~/.bash_login
  • ~/.bashrc
  • ~/.profile
  • /etc/mavenrc
  • ~/.mavenrc

推荐