在我的机器上,我安装了两个Java版本:(1.6和1.7由我手动安装)。我在不同的项目中都需要他们。但对于Maven,我需要1.7,但我的Maven使用1.6 Java版本。
如何将Maven设置为使用1.7?
在我的机器上,我安装了两个Java版本:(1.6和1.7由我手动安装)。我在不同的项目中都需要他们。但对于Maven,我需要1.7,但我的Maven使用1.6 Java版本。
如何将Maven设置为使用1.7?
当前回答
解决这个问题的一个简单办法就是
JAVA_HOME=/usr/lib/jvm/java-6-sun/ mvn clean install
在Mac上,它看起来像-
JAVA_HOME = /图书馆/ Java / JavaVirtualMachines / jdk1.7.0_21。jdk/Contents/Home/ mvn clean install
PS:我发现的一个特殊情况是,上面给出的命令对'fish' shell不起作用。我也有bash shell可用,它在那里工作得很好。只需使用命令'bash'切换到bash shell。
其他回答
您可以使用maven-compiler-plugin使用不同的JDK配置编译源。
只需在<executable>标签中指定路径到javac。例如,对于java11,它看起来像:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk-11.0.1\bin\javac</executable> <!--PATH TO JAVAC -->
</configuration>
</plugin>
Maven使用JAVA_HOME参数来查找应该运行哪个Java版本。我从你的评论中看到,你不能在配置中改变它。
您可以在启动maven之前设置JAVA_HOME参数(如果需要,可以在启动maven之后将其更改回来)。 你也可以进入你的mvn(非windows)/mvn.bat/mvn.cmd(windows)并在那里显式设置你的java版本。
在windows上
如果您不希望更改系统变量中的JAVA_HOME变量。
编辑mvn.bat文件并添加如下一行
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45\jre
这可以在@REM ==== START VALIDATION ====之后完成,就像@Jonathan提到的那样
在Mac(和Linux ?)
如果您不想在~/中更改JAVA_HOME变量。bashc或~/.bash_profile
您可以创建一个~/。使用JAVA_HOME工具重新定义您的JAVA_HOME
export JAVA_HOME=`/usr/libexec/java_home -v 1.7.0_45`
完整性检查
您可以通过执行以下命令来验证一切是否正常工作。jdk版本应该不同。
mvn - version
then
java - version
您可以按照下面的说明将Maven设置为使用任何java版本。
在你的机器上安装jenv链接
通过在命令行中发出以下命令,检查机器中安装的可用java版本。
jenv版本
可以使用以下命令指定全局Java版本。
Jenv global oracle64-1.6.0.39
您可以在命令行中的目录中使用以下命令为任何目录(项目)指定本地Java版本。
Jenv local oracle64-1.7.0.11
在pom.xml中添加正确的Java版本
如果你在命令行中运行maven,使用下面的命令安装jenv maven插件
Jenv使能插件maven
现在,您可以在您的机器上为任何项目配置任何java版本,而不会遇到任何麻烦。
解决这个问题的一个简单办法就是
JAVA_HOME=/usr/lib/jvm/java-6-sun/ mvn clean install
在Mac上,它看起来像-
JAVA_HOME = /图书馆/ Java / JavaVirtualMachines / jdk1.7.0_21。jdk/Contents/Home/ mvn clean install
PS:我发现的一个特殊情况是,上面给出的命令对'fish' shell不起作用。我也有bash shell可用,它在那里工作得很好。只需使用命令'bash'切换到bash shell。