web-dev-qa-db-fra.com

Erreur de compilation Maven: Échec de l'exécution du but org.Apache.maven.plugins: plug-in maven-compiler: 3.1: compiler (compilation par défaut) sur le projet Maven

J'ai un projet Maven créé et cloné à partir d'un dépôt git sur mon Eclipse. Il est construit sur Java 8. La première chose que je fais est de 

mvn clean install

Mais je reçois le message d'échec suivant:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Maven ---
[INFO] Deleting /Users/vshukla/git/Prism/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/vshukla/git/Prism/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 66 source files to /Users/vshukla/git/Prism/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/scanUtility.Java:[54,52] diamond operator is not supported in -source 1.5
  (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/AppUtility.Java:[87,86] diamond operator is not supported in -source 1.5
  (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/ComparisionUtility.Java:[58,52] diamond operator is not supported in -source 1.5
  (use -source 7 or higher to enable diamond operator)
[INFO] 3 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.266 s
[INFO] Finished at: 2017-03-01T12:11:27+05:30
[INFO] Final Memory: 13M/309M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Maven: Compilation failure: Compilation failure:
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/scanUtility.Java:[54,52] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/AppUtility.Java:[87,86] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] /Users/vshukla/git/Prism/src/main/Java/PrenPost/ComparisionUtility.Java:[58,52] diamond operator is not supported in -source 1.5
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]   http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureException

Cependant, vous trouverez ci-dessous les détails du chemin de construction du projet dans lequel JRE-8 est clairement configuré:  build path

et la compilation mise en place:

 Compliance level

Peu importe combien de fois je construis le projet, j'obtiens la même erreur. Même après avoir nettoyé le projet et l'avoir actualisé à partir d'Eclipse, cela n'aide pas. S'il vous plaît guider.

METTRE À JOUR:

Après avoir ajouté les propriétés pour définir le plugin maven compiler

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

je reçois l'erreur ci-dessous:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Maven ---
[INFO] Deleting /Users/vshukla/git/Prism/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Maven ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /Users/vshukla/git/Prism/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Maven ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 66 source files to /Users/vshukla/git/Prism/target/classes
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING : 
[INFO] -------------------------------------------------------------
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java uses or overrides a deprecated API.
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: Recompile with -Xlint:deprecation for details.
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: Some input files use unchecked or unsafe operations.
[WARNING] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java: Recompile with -Xlint:unchecked for details.
[INFO] 4 warnings 
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[26,22] package com.Apple.eawt does not exist
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,41] cannot find symbol
  symbol: class Application
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,67] cannot find symbol
  symbol: variable Application
[INFO] 3 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.591 s
[INFO] Finished at: 2017-03-01T13:09:47+05:30
[INFO] Final Memory: 21M/347M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project Maven: Compilation failure: Compilation failure:
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[26,22] package com.Apple.eawt does not exist
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,41] cannot find symbol
[ERROR] symbol: class Application
[ERROR] /Users/vshukla/git/Prism/src/main/Java/main/MainUITabbed.Java:[93,67] cannot find symbol
[ERROR] symbol: variable Application
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureException

Et voici l'extrait de code donnant l'erreur de compilation de la classe MainUITabbed:

import com.Apple.eawt.Application;
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {


                Application application = Application.getApplication(); // line 93

                ImageIcon imgicon = new ImageIcon(getClass().getResource(
                        "ICON.jpg"));
                Image img = imgicon.getImage();


                application.setDockIconImage(img);

                MainUITabbed frame = new MainUITabbed();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();

            }
        }
    });
}
13
roger_that

Ajouter ceci à POM a résolu le problème pour moi. Veuillez ajuster la version selon vos besoins

...
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>
26
user7639880

Je ne pense pas que IDE soit pertinent ici. Après tout, vous utilisez un Maven et Maven n’a pas de source qui permette de compiler les opérateurs Diamond ..__ Donc, je pense que vous devriez configurer maven-compiler-plugin lui-même.

Vous pouvez lire à ce sujet ici . Mais en général, essayez d’ajouter les propriétés suivantes:

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

et voyez s'il compile maintenant uniquement dans Maven.

9
Mark Bramnik

J'ai eu le même problème et j'ai changé cela

<configuration>
    <source>1.7</source>
    <target>1.7</target>
 </configuration>

ici 1.7 est mon JDK version.it a été résolu.

2
chamzz.dot

Dans mon cas, cela est dû à une incompatibilité avec OpenJDK 9 (sur laquelle je n'ai pas enquêté).

Si vous n'avez pas besoin de JDK 9, une solution temporaire consiste à le purger de votre machine:

Sudo apt-get remove --purge openjdk-9-jdk openjdk-9-jre 
Sudo apt-get remove --purge openjdk-9-jdk-headless openjdk-9-jre-headless
2
snovelli

Copain,
Si tout cela est à jour, même si vous rencontrez ce problème, alors 
Essayez d’exécuter cette commande directement depuis le terminal au lieu d’exécuter depuis Eclipse.
$ mvn clean install 

et assurez-vous que ces choses:

  • Maven est dans le chemin du système 
  • toutes les dépendances maven sont disponibles sur `.m2/repository` 
  • Java est dans le chemin du système 


2
Nityanarayan44

car il venait à cause de la non concordance de version de Java, donc je l’ai corrigé et je suis capable de construire le fichier war. J'espère que cela aidera quelqu'un

    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
1

Jdk 9 et 10 solution

<plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler.version}</version>
            <configuration>
                <source>${Java.version}</source>
                <target>${Java.version}</target>
                <debug>true</debug>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                    <version>6.2</version>
                </dependency>
            </dependencies>
        </plugin>

et assurez-vous que votre assistant pointe vers JDK 10 ou 9 . mvn -v

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T14:49:05-05:00)
Maven home: C:\devplay\Apache-maven-3.5.3\bin\..
Java version: 10.0.1, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk-10.0.1
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", Arch: "AMD64", family: "windows"
1
vsingh

Si vous êtes capable de compiler mvn compile le projet avec succès depuis le terminal mais pas depuis Eclipse, cliquez sur Fenêtre> Préférences> JRE installés, assurez-vous d’avoir sélectionné JRE sous JDK (consultez les chemins de 2 JRE différents dans l’image), comme Maven a besoin de JDK pour compiler, vous devez l’ajouter.

 Installed JREs

1
sql_dummy

Cela dans le fichier pom.xml et après la mise à jour du projet, le problème a disparu.

<plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
</configuration>
</plugin>
  1. Mettez à jour le pom.xml sous <plugin></plugin>.

  2. Mettez à jour votre projet.

  3. Ensuite, nettoyez et installez Maven.

1
Sushovan Mallick

La configuration de pom.xml ci-dessous assure le succès de la construction et veille à ce que la bibliothèque système JRE System du chemin de construction du projet pointe sur Java8.

org.Apache.maven.pluginsmaven-compiler-plugin3.7.0 1.81.8

1
Srinivas Avasarala

Allez à l'emplacement du fichier où le POM est stocké et ouvrez cmd . Ensuite, tapez "mvn --v" pour vérifier la version maven et le runtime Java fourni . Vérifiez l'attribut d'exécution et s'il est "C:\Program Files\Java\jre1.8.0_191 "ou même proche d'un JRE, accédez aux variables d'environnement et ajoutez une nouvelle" variable système "appelée" Java_HOME "avec la valeur" C:\Program Files\Java\jdk1.8.0_191 ".

Rouvrez le cmd puis "installer à nouveau" le projet.

0
Rohit Bhatnagar

assurez-vous que le chemin principal Java est correct. dans mon cas, le chemin de départ Java est incorrect dans le fichier pom.

  <properties>
        <Java.home>/usr/Java/jdk1.8.0_45/bin/javac</Java.home>
  </properties>




              <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>${Java.home}</executable>
                   <compilerVersion>1.8</compilerVersion>
                   <source>1.8</source>
                   <target>1.8</target>
                 </configuration>
             </plugin>

Vous devriez ajouter le code dans pom.xml comme ceci:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
0
user8961607