为什么 Maven 在 Fish 中使用 运行 时使用错误的 JDK 版本?
Why does Maven use the wrong JDK version when running from Fish?
我 运行 macOS Sierra,并安装了 Fish shell (https://fishshell.com/).
当我尝试构建 Maven 项目时,它现在给我
Fatal error compiling: invalid target release: 1.8 ->
... 这意味着它选择了一个较旧的 JDK,它试图用它来构建我的 Java 8 项目。
运行宁 mvn -version
:
...
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
...
但是我 JAVA_HOME
设置正确,echo $JAVA_HOME
在两个 shell 中给我:
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
和java -version
给我
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
和javac -version
:
javac 1.8.0_112
echo $PATH
在两个 shell 中给出相同的结果(除了在 Bash 中,目录由 :
分隔;在 Fish 中,一个 space </code>):</p>
<pre><code>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin
我已将 maven-compiler-plugin
配置为 1.8:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
为什么 Maven 坚持使用 1.6 JDK?当 运行 通过 Bash.
时,同一个项目构建良好,具有正确的 1.8 JDK
如果你是运行旧版本的maven,请尝试更新到最新版本(3.5.0),例如通过自制软件 (brew install maven
).
我 运行 macOS Sierra,并安装了 Fish shell (https://fishshell.com/).
当我尝试构建 Maven 项目时,它现在给我
Fatal error compiling: invalid target release: 1.8 ->
... 这意味着它选择了一个较旧的 JDK,它试图用它来构建我的 Java 8 项目。
运行宁 mvn -version
:
...
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
...
但是我 JAVA_HOME
设置正确,echo $JAVA_HOME
在两个 shell 中给我:
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home
和java -version
给我
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b16)
和javac -version
:
javac 1.8.0_112
echo $PATH
在两个 shell 中给出相同的结果(除了在 Bash 中,目录由 :
分隔;在 Fish 中,一个 space </code>):</p>
<pre><code>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Server.app/Contents/ServerRoot/usr/bin:/Applications/Server.app/Contents/ServerRoot/usr/sbin
我已将 maven-compiler-plugin
配置为 1.8:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
为什么 Maven 坚持使用 1.6 JDK?当 运行 通过 Bash.
时,同一个项目构建良好,具有正确的 1.8 JDK如果你是运行旧版本的maven,请尝试更新到最新版本(3.5.0),例如通过自制软件 (brew install maven
).