2016-04-14 12 views
1

Ich habe verschiedene Java-Projekte. Wenn ich verstehe, dass sich die java_home-Systemumgebung jedes Mal ändert, wenn ich zwischen ihnen wechsle, ist das eine schlechte Idee. Ich fange an, JAVA_HOME speziell für jedes von ihnen unabhängig zu setzen. Wenn ich JAVA_HOME für Maven (Version 2) Runtime (der Java Maven verwendet, um eine Java-Anwendung zu verwenden) gesetzt? Nach meinem Verständnis sollte JAVA_HOME für Maven nicht beeinflussen, wie mein Code kompiliert und ausgeführt wird (die mit maven-Compiler-Plugin Quelle und Ziel konfiguriert werden soll). Recht?Einstellung JAVA_HOME für Maven NUR unabhängig von meinem Code Java

Als ich set JAVA_HOME in mvn.bat:

@REM Maven2 Start Up Batch script 
set JAVA_HOME=C:\dev\tools\jdk-1.6 

Und meine Maven-Compiler-Plugin ist auf diese Weise konfiguriert:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
    <source>1.7</source> 
    <target>1.7</target> 
    </configuration> 
</plugin> 

erhalte ich diesen Fehler:

[ERROR] BUILD ERROR 
[INFO] -------------------------------------- 
[INFO] Fatal error compiling 
Embedded error: invalid target release: 1.7 

Warum hat JAVA_HOME, die für die Laufzeit von Maven angegeben wurde, Auswirkungen auf meinen Code co mpilation? Wie trennt man zwischen den beiden?

+1

.... Zuerst sagen Sie Ihrem Rechner, JDK6 zu verwenden, und dann kompilieren Sie mit Java 7, und Sie gehen davon aus, dass dies keine Probleme verursacht? – Stultuske

+0

Warum läuft Maven auf Java 6? – bedrin

+0

@Stultuske ist richtig ... Ändern Sie die Quelle und das Ziel für 'Maven-Compiler-Plugin'to 1.6 – Hohenheim

Antwort

0

Maven die JRE in JAVA_HOME standardmäßig angegeben verwenden sie das JDK aus dem gleichen Ordner für die Erstellung .java Dateien

verwenden Sie können jedoch in maven-compile-pluginconfiguration ändern

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