webentwicklung-frage-antwort-db.com.de

Maven build Kompilierungsfehler: Fehler beim Ausführen des Ziels org.Apache.maven.plugins: maven-compiler-plugin: 3.1: compile (default-compile) im Projekt Maven

Ich habe ein Maven-Projekt gegabelt und von einem Git Repo auf meinen Eclipse geklont. Es ist auf Java 8 aufgebaut. Als Erstes führe ich ein 

mvn clean install

Ich erhalte jedoch folgende Fehlermeldung:

[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

Nachfolgend finden Sie jedoch die Build-Pfad-Details des Projekts, für das JRE-8 eindeutig eingerichtet wurde: build path

und die Zusammenstellung:

Compliance level

Egal wie oft ich das Projekt baue, ich bekomme den gleichen Fehler. Auch nachdem das Projekt gereinigt und von Eclipse aktualisiert wurde, hilft es nicht weiter. Bitte führen Sie.

UPDATE:

Nachdem Sie die Eigenschaften hinzugefügt haben, um das Maven-Compiler-Plugin festzulegen

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

bekomme die folgende Fehlermeldung:

[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

Und hier ist das Code-Snippet, das den Kompilierungsfehler der Klasse MainUITabbed angibt:

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

Das Hinzufügen zu POM hat es für mich behoben. Bitte passen Sie die Version nach Bedarf an

...
</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

Ich glaube nicht, dass IDE hier relevant ist. Immerhin haben Sie einen Maven und Maven hat keine Quelle, die es erlaubt, die Diamantenoperatoren zu kompilieren. Ich denke, Sie sollten das Maven-Compiler-Plugin selbst konfigurieren.

Sie können über dieses hier lesen. Versuchen Sie jedoch im Allgemeinen, die folgenden Eigenschaften hinzuzufügen:

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

und sehen, ob es jetzt nur in Maven compiliert.

9
Mark Bramnik

Ich hatte das gleiche Problem und ich änderte das

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

hier ist 1.7 meine JDK version.it wurde gelöst.

2
chamzz.dot

In meinem Fall war dies auf eine Inkompatibilität mit OpenJDK 9 zurückzuführen (die ich nicht untersucht habe).

Wenn Sie kein JDK 9 benötigen, können Sie es vorübergehend aus dem Computer entfernen:

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

Kumpel,
Wenn alles aktuell ist, dann haben Sie auch dieses Problem 
Versuchen Sie, diesen Befehl direkt vom Terminal aus auszuführen, anstatt von Eclipse aus.
$ mvn clean install 

und stellen Sie sicher, dass diese Dinge:

  • Maven ist im Systempfad 
  • Alle Maven-Abhängigkeiten sind unter `.m2/repository` verfügbar 
  • Java befindet sich im Systempfad 


2
Nityanarayan44

denn es kam aufgrund von Java-Versionskonflikten, daher habe ich es korrigiert und ich bin in der Lage, die Kriegsdatei zu erstellen. Ich hoffe, es wird jemandem helfen

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

Jdk 9 und 10 Lösung

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

und stellen Sie sicher, dass Ihr Maven auf JDK 10 oder 9 zeigt

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

Auf den anderen Vorschlägen kann ich hier keinen eigenen Build aufbauen. Ich habe sogar verschiedene Versionen des Maven-Compiler-Plugins ausprobiert: 3.1, 3.7.0, etc.

Ich brachte es zum Laufen und fügte Folgendes hinzu:

<testSourceDirectory>/src/test/Java</testSourceDirectory>

Ich habe diesen Ansatz ausprobiert, da das Verzeichnis/src/test/Java anscheinend als eine Java Klasse betrachtet wird, weshalb es zur gleichen Zeit wie/src/test/Java kompiliert wird waren in meinem Fall richtig.

Vielleicht ist es auch für andere, also probieren Sie es einfach aus.

1
pvma

Wenn Sie mvn compile das Projekt erfolgreich vom Terminal aus kompilieren können, aber nicht von Eclipse aus Window> Preferences> Installierte JREs, stellen Sie sicher, dass Sie JRE ausgewählt haben, das sich unter JDK befindet (überprüfen Sie die Pfade von 2 verschiedenen JREs im Bild). Da Maven JDK zum Kompilieren benötigt, müssen Sie es hinzufügen.

 Installed JREs

1
sql_dummy

Dadurch ist das Problem in der Datei pom.xml und nach dem Aktualisieren des Projekts behoben.

<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. Aktualisieren Sie die Datei pom.xml unter <plugin></plugin>.

  2. Aktualisieren Sie Ihr Projekt.

  3. Dann reinigen Sie Maven und installieren Sie Maven.

1

Die folgende Konfiguration von pom.xml macht den Build erfolgreich, und stellen Sie sicher, dass die JRE System Library des Projekt-Buildpfads auf Java8 verweist.

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

1

Gehen Sie zu dem Dateispeicherort, an dem das POM gespeichert ist, und öffnen Sie cmd . Geben Sie "mvn --v" ein, um die Maven-Version und die Java-Laufzeitumgebung zu überprüfen . Überprüfen Sie das Laufzeitattribut und ob es "C:\Program." Dateien\Java\jre1.8.0_191 "oder sogar in der Nähe einer JRE, gehen Sie zu Umgebungsvariablen und fügen Sie eine neue" Systemvariable "namens" Java_HOME "mit dem Wert" C:\Programme\Java\jdk1.8.0_191 "hinzu.

Öffnen Sie das Cmd erneut und installieren Sie das Projekt anschließend "sauber".

0
Rohit Bhatnagar

stellen Sie sicher, dass der Java-Home-Pfad korrekt ist. In meinem Fall ist der Java-Home-Pfad in der POM-Datei falsch.

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

Sie sollten den Code wie folgt in pom.xml einfügen:

<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