web-dev-qa-db-fra.com

Comment changer Java pour Maven dans IntelliJ?

Je suis nouveau chez Maven et IntelliJ IDEA.

J'ai un projet Maven écrit dans Java 8.). Chaque fois que j'essaie de le construire (fenêtre Projets Maven -> Cycle de vie -> compiler -> Exécuter Maven Build), je reçois une série d'erreurs de compilation:

[ERROR] path/to/file.Java:[26,52] lambda expressions are not supported in -source 1.5
(use -source 8 or higher to enable lambda expressions)

Où suis-je censé changer la valeur du paramètre -source? J'ai essayé de l'ajouter en tant que paramètre supplémentaire dans Paramètres -> Compilateur -> Java Compilateur, mais j'ai obtenu les mêmes résultats.

Les niveaux de langue du projet et du module sont tous deux réglés sur 8.0.

J'utilise Maven 3.2.3 et IntelliJ IDEA Community Edition 13.1.2.

73
tearvisus

Ou plus facilement, ajoutez ceci à la section properties de votre pompon:

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>
100
hamid

Sommaire:

  • 'maven-compiler-plugin' TOUJOURS fonctionne! C'est ce que je vous suggère d'utiliser.

Pour changer le niveau de langue, utilisez

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.4</source>
                <target>1.4</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Les propriétés ne changent pas toujours le niveau de langue d'Intellij!

Dans le code ci-dessous, 1.4 a été configuré dans le pom à l’aide de maven-compiler-plugin
(le jdk d’Intellij est 1.8) et le niveau de langue du projet a été modifié en conséquence en 1.4:

enter image description here

Il a été vérifié deux fois! C'est un exemple. La plupart du temps, vous ne réduisez pas la version du JDK à la version 1.4!

Bien sûr, si vous utilisez des propriétés, disons que vous avez inséré le pom 1.8, puis si vous utilisez un JDK 1.8 dans Intellij (le niveau de langue par défaut est 1.8 ou la langue par défaut a été modifiée manuellement), vous pourrez alors coder en 1.8 MAIS à la compilation mvn, les propriétés ne seront pas vues et vous passerez par défaut à Maven 1.5 et la compilation n'aboutira pas!

34
Rudy Vissers

Changer la source comme indiqué ci-dessous dans pom.xml

<build>
        <finalName>MQService</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
6
Rahul

L'ajout de lignes ci-dessous à la racine (au niveau du projet) pom.xml m'a permis de résoudre le problème ci-dessus: (les deux options ont fonctionné pour moi)

Option 1:

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

Option 2:

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

publié à l'origine à: IntelliJ IDEA 13 utilise Java 1,5 malgré le réglage sur 1,7

4
Anamika

Il y a deux façons de le faire :

Première- Ajouter des propriétés

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

second- Add Plugin

<plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
</plugin>
1
Anuj Teotia