簡體   English   中英

無論我的代碼是java,都只為Maven設置JAVA_HOME

[英]setting JAVA_HOME for Maven ONLY regardless of my code java

我正在運行不同的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 配置中更改它

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM