java - 仅为 Maven 设置 JAVA_HOME,无论我的代码如何

标签 java eclipse maven java-6 java-home

我正在运行不同的java项目。明白每次在它们之间切换时更改 java_home 系统环境是一个坏主意,我开始专门为它们独立设置 JAVA_HOME 。 当我为maven(版本2)运行时设置JAVA_HOME时(java maven用来运行,作为一个java应用程序)? 据我了解,maven 的 JAVA_HOME 不应影响我的代码的编译和运行方式(应该使用 ma​​ven-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/

相关文章:

java - 扫描仪返回未找到行

java - 在 javafx TableView 单元格中编辑数字

android - 无法打开应用程序 "Eclipse"。 -10810

c++ - 如何将 Arduino 库添加到 Eclipse 项目?

maven - 在STS/Maven项目中导出Groovy依赖项导致类路径无效

python - Bamboo 日志输出顺序问题

java - 正确部署maven项目

java - Android(6.*) : Permission denial although permissions are assigned, 且未请求

java - 如何获取在泛型方法调用中传递的类型名称?

java - 在 Eclipse 中使用 JAR 导出图像 (Java)