在我的机器上,我安装了两个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 Mini - M1芯片,在通过brew install maven安装maven后,我注意到它使用的是java 19,但我更想使用我下载到我的机器中的java 17版本。不幸的是,特定的指示重置默认的mvn java版本。以下是你可以遵循的步骤。
MVN——version #这将给出maven的安装位置 Maven home: /opt/homebrew/Cellar/ Maven /3.8.7/libexec 然后进入/opt/homebrew/Cellar/maven/3.8.7/bin文件夹 编辑mvn文件,我使用vi mvn 下面我编辑了jdk的位置,指向我有java 17 jdk的位置
#!/bin/bash
JAVA_HOME="${JAVA_HOME:-/Library/Java/JavaVirtualMachines/jdk-17.0.3.1.jdk/Contents/Home}" exec "/opt/homebrew/Cellar/maven/3.8.7/libexec/bin/mvn" "$@"
编辑完成后保存MVN文件 MVN -v现在会显示它的默认Java版本是17
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /opt/homebrew/Cellar/maven/3.8.7/libexec
Java version: 17.0.3.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-17.0.3.1.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "13.1", arch: "aarch64", family: "mac"
其他回答
您只需要在调用JAVA_HOME之前将您的JAVA版本添加到mvn文件中 例如,我的。bashrc文件中的JAVA版本是JAVA -17 我想用Java-11运行maven:
文件/usr/share/maven/bin/mvn: 我补充说:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
在脚本中调用JAVA_HOME之前
然后它在Java-11中工作得很好:)
您可以按照下面的说明将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版本,而不会遇到任何麻烦。
在不改变环境变量的情况下,您可以使用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>
您可以使用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>
在POM中,你可以设置编译器属性,例如1.8:
<project>
...
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
...
</project>