2016-04-14 1 views
1

Je cours différents projets de Java. Comprendre que changer l'environnement du système java_home chaque fois que je passe d'une machine à l'autre est une mauvaise idée, je commence à définir spécifiquement JAVA_HOME pour chacun d'entre eux indépendamment. Lorsque j'ai défini JAVA_HOME pour maven (version 2) runtime (que le Java Java utilise pour être une application java)? Pour ma compréhension, JAVA_HOME pour maven ne devrait pas affecter la façon dont mon code est compilé et exécuté (qui sont supposés être configurés en utilisant maven-compiler-plugin source et cible). Droite?réglage JAVA_HOME pour Maven UNIQUEMENT quel que soit mon code java

Quand je mets JAVA_HOME dans mvn.bat:

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

Et mon maven-plugin-compilateur est configuré de cette façon:

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

Je reçois cette erreur:

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

Pourquoi JAVA_HOME spécifié pour maven runtime affecte-t-il mon code co mpilation? Comment séparer entre les deux?

+1

.... D'abord vous dites à votre machine d'utiliser JDK6, puis vous compilez avec Java 7, et vous supposez que cela ne causera pas de problèmes? – Stultuske

+0

Quelle est la raison de l'exécution de Maven sur Java 6? – bedrin

+0

@Stultuske a raison ... Changez la source et la cible pour 'maven-compiler-plugin'à 1,6 – Hohenheim

Répondre

0

Maven utilisera le JRE spécifié dans JAVA_HOME Par défaut, il utilisera le JDK du même dossier pour compiler .java fichiers

Cependant, vous pouvez le modifier dans 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>