我正在运行不同的java项目。明白每次在它们之间切换时更改 java_home 系统环境是一个坏主意,我开始专门为它们独立设置 JAVA_HOME 。 当我为maven(版本2)运行时设置JAVA_HOME时(java maven用来运行,作为一个java应用程序)? 据我了解,maven 的 JAVA_HOME 不应影响我的代码的编译和运行方式(应该使用 maven-compiler-plugin 源和目标进行配置)。对吗?
当我在mvn.bat中设置JAVA_HOME时:
@REM Maven2 Start Up Batch script
set JAVA_HOME=C:\dev\tools\jdk-1.6
我的 maven-compiler-plugin 是这样配置的:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
我收到此错误:
[ERROR] BUILD ERROR
[INFO] --------------------------------------
[INFO] Fatal error compiling
Embedded error: invalid target release: 1.7
为什么为maven运行时指定的JAVA_HOME会影响我的代码编译?如何区分两者?
最佳答案
Maven将使用JAVA_HOME
中指定的JRE
默认情况下,它将使用同一文件夹中的 JDK 来编译 .java
文件
但是您可以在 maven-compile-plugin
configuration 中更改它
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable><!-- path-to-javac --></executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
关于java - 仅为 Maven 设置 JAVA_HOME,无论我的代码如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36619332/