【问题标题】:setting JAVA_HOME for Maven ONLY regardless of my code java无论我的代码如何,只为 Maven 设置 JAVA_HOME
【发布时间】:2016-08-05 18:50:01
【问题描述】:

我正在运行不同的 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 会影响我的代码编译?两者如何区分?

【问题讨论】:

  • .... 首先你告诉你的机器使用 JDK6,然后你编译 Java 7,你认为这不会导致问题?
  • 在 Java 6 上运行 Maven 的原因是什么?
  • @Stultuske 是对的...将maven-compiler-plugin的源和目标更改为1.6
  • 我假设我在告诉 --MAVEN-- 使用 jdk6 运行。不要使用 jdk6 编译我的代码(但使用源代码中指定的 1.7)。有错吗?
  • @MoneerOmar 您正在尝试使用 1.6 JDK 使用 1.7 编译它。

标签: java eclipse maven jdk1.6 java-home


【解决方案1】:

Maven 将使用JAVA_HOME 中指定的 JRE 默认情况下,它将使用同一文件夹中的 JDK 来编译 .java 文件

但是你可以在maven-compile-pluginconfiguration中更改它

<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>

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多