在我的机器上,我安装了两个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?
当前回答
在不改变环境变量的情况下,您可以使用Maven Compiler Plugin基于项目级别管理java版本。
方法1
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
方法2
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
其他回答
在windows中,我只是将不同JDK版本的多个批处理文件添加到Maven bin文件夹中,如下所示:
mvn11.cmd
@echo off
setlocal
set "JAVA_HOME=path\to\jdk11"
set "path=%JAVA_HOME%;%path%"
mvn %*
然后你可以使用mvn11在指定的JDK中运行Maven。
在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
编辑:
Ondrej的回答提供了一个更好的解决方案,它避免了记住别名。
最初的回答:
为安装了多个Java版本的用户添加解决方案
我们有一个很大的代码库,其中大部分是Java。我所做的大部分工作都是用Java 1.7或1.8编写的。由于JAVA_HOME是静态的,我在.bashrc中创建了不同值的别名来运行Maven:
alias mvn5="JAVA_HOME=/usr/local/java5 && mvn"
alias mvn6="JAVA_HOME=/usr/local/java6 && mvn"
alias mvn7="JAVA_HOME=/usr/local/java7 && mvn"
alias mvn8="JAVA_HOME=/usr/local/java8 && mvn"
这让我可以在我的开发机器上从命令行运行Maven,而不管项目上使用的JDK版本是什么。
在不改变环境变量的情况下,您可以使用Maven Compiler Plugin基于项目级别管理java版本。
方法1
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
方法2
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
在Linux/Unix上,“mvn”shell脚本中的JAVA_HOME会被中的设置覆盖
$HOME/.mavenrc
在linux中添加JAVA_HOME和MAVEN路径变量