在我的机器上,我安装了两个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?
当前回答
Mac用户, 如果您已经从HomeBrew(Brew)安装了maven, 或者即使你是从别处安装的, 如果您想更改Maven使用的Java的默认版本, 您可以使用以下命令来更改maven使用的版本,
vim ~/.mavenrc
在弹出的gui中输入这个并保存-
JAVA_HOME="(put the Home path of your desired java version package)"
要验证maven的路径是否已更改,可以使用-进行检查
mvn -v
其他回答
你也可以安装两个版本的maven,然后编辑其中一个,点击这里编辑:
mvn (non-windows) / mvn。蝙蝠mvn cmd (windows)。
将您的%java_home%外观替换为您的Java所需路径。然后从修改后的路径执行maven
在mac上(假设你安装了正确的版本)
JAVA_HOME= ' /usr/libexec/ JAVA_HOME -v 1.8 ' mvn clean install -DskipTests . txt
在使用Maven长达7年之后,我最近才学会了toolchains.xml。Maven甚至已经对它进行了文档化,并从2.0.9开始支持它——工具链文档
所以我在~/中添加了toolchains.xml文件。M2 /文件夹,内容如下:
<toolchains xmlns="http://maven.apache.org/TOOLCHAINS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/TOOLCHAINS/1.1.0 http://maven.apache.org/xsd/toolchains-1.1.0.xsd">
<!-- JDK toolchains -->
<toolchain>
<type>jdk</type>
<provides>
<version>1.8</version>
<vendor>sun</vendor>
</provides>
<configuration>
<jdkHome>/opt/java8</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.7</version>
<vendor>sun</vendor>
</provides>
<configuration>
<jdkHome>/opt/java7</jdkHome>
</configuration>
</toolchain>
</toolchains>
它允许您定义可以使用哪些不同的JDK Maven来构建项目,而不管JDK Maven使用什么运行。有点像在IDE中在项目级别上定义JDK。
为了避免对项目和环境变量的任何影响,您可以将Maven Compiler Plugin配置为项目的POM,指定源和目标java版本
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
解决这个问题的一个简单办法就是
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。