web-dev-qa-db-fra.com

Comment savoir et changer la version de Java utilisée par Maven pour s'exécuter?

Lors de l'exécution de notre construction Maven, un membre de mon équipe obtient this error lors de l'exécution. Cependant, lorsque nous exécutons Java -version à partir de sa ligne de commande, il indique Java 1.6.0_26. L’erreur semble évidemment crier que Maven utilise Java 5.

Comment savoir et changer la version de Java utilisée par Maven?

3 notes potentiellement importantes:

  1. Ceci est exécuté sur la ligne de commande, sans utiliser le plugin Eclipse
  2. Java_HOME est défini sur un JDK Java 1.6
  3. Utiliser Maven 2.2.1
47
shsteimer

mvn -version affichera le Java utilisé. Si Java_HOME est défini sur un répertoire JDK valide et que Maven utilise autre chose, il est fort probable que quelqu'un a modifié le mode de démarrage de Maven.

76
Ryan Stewart

Vous devrez configurer maven-compiler-plugin pour utiliser les paramètres 1.6 source et target (la valeur par défaut est 1,5).

C’est ce qui se fait de mieux dans la section <pluginManagment> du pom parent de votre projet (mais vous pouvez toujours le configurer pour des projets individuels, bien sûr).

  <build>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.Apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.3.2</version>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>

          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
7

mvn -version vous indique le compilateur utilisé par Maven, cela répond donc à la question sauf votre POM spécifie les valeurs de substitution pour les versions à utiliser.

Voici le moyen le plus simple de spécifier les remplacements dans pom.xml:

<properties>
    <maven.compiler.target>1.9</maven.compiler.target>
    <maven.compiler.source>1.9</maven.compiler.source>
</properties>

Sinon, le maven-compiler-plugin peut être spécifié plus explicitement. Dans ce cas, examinez les valeurs <source> et <target> associées au plug-in.

Ces deux options sont décrites ici .

Si votre POM a un <parent>, alors vous devez également le vérifier (récursivement).

Remarque: lorsque source et target sont spécifiés, ces valeurs sont transmises en tant qu'options de ligne de commande au compilateur. Cette fonctionnalité permet de compiler ou d'exécuter des versions de Java antérieures à la valeur nominale du compilateur.

1
nobar
1
Eric