Fehler beim Ausführen des Ziels org.apache.maven.plugins: maven-compiler-plugin: 2.3.2: compile (default-compile)

130

Ich verwende Maven 3.0.5 und Spring Tool Source 3.2 mit installiertem Maven-Plugin. Wenn ich versuche, 'Ausführen als ---> Maven-Installation' auszuführen, wird die folgende Fehlermeldung angezeigt:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Spring Social Twitter4J Sample 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-war-plugin:jar:2.1.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ spring-social-twitter4j ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 15 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ spring-social-twitter4j ---
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
Jun 21, 2013 2:14:32 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
WARNING: Error injecting: org.apache.maven.plugin.CompilerMojo
**java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/CompilerException**
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getDeclaredConstructors(Unknown Source)
    at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
    at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:98)
    at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:831)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:758)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:255)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:204)
    at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:954)
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:987)
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:950)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
    at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
    at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
    at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
    at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
    at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
    at com.google.inject.Scopes$1$1.get(Scopes.java:59)
    at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
    at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:455)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.compiler.CompilerException
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    ... 54 more

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Fri Jun 21 02:14:32 IST 2013
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
**[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project spring-social-twitter4j: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile: org/codehaus/plexus/compiler/CompilerException**
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/SS%20Computer/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
[ERROR] urls[1] = file:/C:/Users/SS%20Computer/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------: org.codehaus.plexus.compiler.CompilerException
[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/PluginContainerException

Nachfolgend finden Sie meine pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springframework.social.samples</groupId>
    <artifactId>spring-social-twitter4j</artifactId>
    <name>Spring Social Twitter4J Sample</name>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework.social-version>1.1.0.BUILD-SNAPSHOT</org.springframework.social-version>
        <org.springframework-version>3.2.1.RELEASE</org.springframework-version>
        <org.springframework.security-version>3.1.3.RELEASE</org.springframework.security-version>
        <org.slf4j-version>1.7.2</org.slf4j-version>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>               
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-core</artifactId>
            <version>${org.springframework.social-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-web</artifactId>
            <version>${org.springframework.social-version}</version>
        </dependency>

        <!-- Twitter4J -->
        <dependency>
            <groupId>org.twitter4j</groupId>
            <artifactId>twitter4j-core</artifactId>
            <version>2.2.3</version>
        </dependency>

        <!-- JSR 303 with Hibernate Validator -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.1.0.Final</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.3.159</version>
        </dependency>

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- CGLIB, only required and used for @Configuration usage -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>jstl-impl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>org.springframework.maven.release</id>
            <name>Spring Maven Release Repository</name>
            <url>http://maven.springframework.org/release</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <!-- For testing against latest Spring snapshots -->
        <repository>
            <id>org.springframework.maven.snapshot</id>
            <name>Spring Maven Snapshot Repository</name>
            <url>http://maven.springframework.org/snapshot</url>
            <releases><enabled>false</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <!-- For developing against latest Spring milestones -->
        <repository>
            <id>org.springframework.maven.milestone</id>
            <name>Spring Maven Milestone Repository</name>
            <url>http://maven.springframework.org/milestone</url>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
    </repositories>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>                
                <configuration>
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <warName>spring-social-twitter4j</warName>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
            </plugin>
        </plugins>
    </build>
</project>

Während der Maven-Installation ist es mein Ziel war:war, WAR aus meiner Anwendung zu machen.

Rushi Shah
quelle
Stellen
2
@EugeneHoza Codehaus JIRA ist geschlossen und Ihr Link ist tot. Sehen Sie jetzt, warum Links niemals die einzige Information sein sollten?
NaXa
Ich habe diesen Fehler beim Wechsel von Spring 2.2.7 zu 2.3.1
Ravi Parekh

Antworten:

135

Voll löschen .m2/repository lokalen Repositorys hat mein Problem gelöst.

Oder Sie müssen genau wissen, welche Plugins Sie mit ihren Abhängigkeiten verwenden, da eines der Plugins beim Herunterladen ein Problem hatte.

Prateek Batla
quelle
2
Ich habe durch Repository / Org-Verzeichnis gelöscht und danach hat alles gut funktioniert
dannrob
Ich habe mein ".M2 / Repository" umbenannt, es wirft zumindest keinen Fehler aus. Mal sehen.
InfantPro'Aravind '23.
13
sollte gelöscht werden, .m2/repositorydamit Sie nicht settings.xmlin .m2dir löschen
Mike D
3
rm -rf rm -rf ~/.m2/repository/org/apache/funktioniert bei mir.
Wener
Ähnlich wie bei @wener vorgeschlagen, habe ich den Ordner ~ / .m2 \ repository \ org \ apache \ maven gelöscht und für mich gearbeitet.
Edu Costa
122

Das Löschen des vollständigen lokalen .m2-Repositorys löste auch mein Problem.

Wenn Sie nicht wissen, wo es ist, sind die Standorte:

Unix/Mac OS X  ~/.m2/repository
Windows  C:\Documents and Settings\{your-username}\.m2\repository 
        ( %USERPROFILE%\.m2\repository too, as suggested by **MC Empero** )
Lucas Gomes
quelle
3
Beachten Sie, dass Sie unter Windows durch Eingabe %USERPROFILE%zu Ihrem Profilverzeichnis gelangen, in dem sich der .m2Ordner befindet.
MC Emperor
Weiß jemand, warum dieses Problem auftritt? Ich habe das gleiche Problem und lösche das Verzeichnis, um es zu lösen.
Emmmphd
@ MCEmperor Danke! Fand es gelöscht, und es funktioniert jetzt.
DIRTY DAVE
48

Ich füge der Lösung von @Rushi Shah weitere Punkte hinzu

mvn clean install -X hilft, die Grundursache zu identifizieren.

Einige der wichtigen Phasen des Maven-Build-Lebenszyklus sind:

clean- das Projekt sauber alle Artefakte, die aus früheren Compilations kamen compile- das Projekt wird kompiliert in / Zielverzeichnis von Projektstamm install- verpackt Archiv wird in lokale Maven - Repository kopiert (könnte Ihre Benutzer-Home - Verzeichnis unter /.m2 in) test- Unit - Tests sind Lauf package kompilierte Quellen werden in das Archiv gepackt (standardmäßig JAR).

Das Tag 1.6 unter bezieht sich auf die JDK-Version. Wir müssen sicherstellen, dass die richtige JDK-Version in unserer Entwicklungsumgebung vorhanden ist, oder den Wert auf 1,7 oder 1,5 oder was auch immer ändern, wenn die Anwendung in dieser JDK-Version unterstützt werden kann.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Die vollständigen Details zum Maven-Build-Lebenszyklus finden Sie am Standort Maven.

Sree Rama
quelle
29

Ich hatte das gleiche Problem. Überprüfen Sie den installierten JRE, der von Maven in Ihrer Run-Konfiguration verwendet wird.

In Ihrem Fall denke ich, dass das Maven-Compiler-Plugin: jar: 2.3.2 ein jdk1.6 benötigt

Gehen Sie dazu folgendermaßen vor: Führen Sie Konfiguration> YOUR_MAVEN_BUILD> JRE> Alternative JRE ausGeben Sie hier die Bildbeschreibung ein

Hoffe das hilft.

jmj
quelle
1
Dies ist die beste Lösung, auch für mich funktioniert keine Notwendigkeit, Dateien zu löschen Ich denke, dies ist tatsächlich die
Dunken
Sie müssen die Welt darüber informieren. denn selbst wenn ich jre in Windows-> Einstellungen auf jdk setze, funktioniert es nicht. aber deine Antwort funktioniert.
göttlicher
20

Manchmal liegt es daran, dass das Projekt eher auf JRE als auf JDK verweist.

1. Klicken Sie mit der rechten Maustaste auf Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren -> Bibliothek hinzufügen -> JRE-Systembibliothek -> Umgebungen -> Installierte JREs -> Zeigen Sie auf den Java-Ordner in Laufwerk c: (Windows) ) und wählen Sie JDK-Ordner und ok.

2.Entfernen Sie die bereits vorhandene JRE aus dem Erstellungspfad.

Ashutosh S.
quelle
Hat perfekt funktioniert !! Update: In Eclipse Java Oxygen müssen Sie auf der Seite "Installierte JREs" auf "Hinzufügen ..." klicken, bevor Sie auf den Ordner zeigen
gotube
Ja, das hat auch bei mir funktioniert. Ich denke, es ist eine schnelle Lösung, um vorhandene JRE zu entfernen und erneut hinzuzufügen.
Nikhil Lotke
6

Normalerweise reicht es aus, das Maven-Compiler-Plugin zu definieren. Fügen Sie Ihrer Compiler-Plugin-Definition Folgendes hinzu.

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>              
</plugin>
Tapha
quelle
Ja, ich habe in meiner pom.xml "<inherited> true </ enterhered>" hinzugefügt. Beim Speichern wird die folgende Ausnahme angezeigt: Ein interner Fehler ist aufgetreten während: "Aktualisieren von Maven-Abhängigkeiten". org / apache / maven / shared / filtering / MavenFilteringException
Rushi Shah
8
Ich habe die Lösung endlich erhalten, indem ich den folgenden Befehl ausgeführt habe: mvn clean install -X. Es gab mir die Grundursache. Eigentlich zeigte mein JAVA_HOME auf JRE_HOME und der Compiler im Maven-Compiler-Plugin, den er suchte, wird nur mit JDK ausgeliefert. Also habe ich JDK installiert und mein JAVA_HOME aktualisiert.
Rushi Shah
hilft nicht: [WARNUNG] Der Pfad 'javac' kann nicht automatisch erkannt werden, wenn 'javac' aus der Umgebung verwendet wird.
MemLeak
5

Manchmal tritt dieses Problem auf, weil die in POM.xml erwähnte java.version nicht die auf Ihrem Computer installierte ist.

<properties>
    <java.version>1.7</java.version>
</properties>

Stellen Sie sicher, dass Sie in Ihrer pom.xml genau dieselbe Version angeben wie die auf Ihrem Computer vorhandene jdk- und jre-Version.

Harshad Holkar
quelle
Vielen Dank ... Diese Antwort brachte mich auf die Idee, dass das Problem in meinem Fall etwas mit der Java-Version zu tun hat. Es stellte sich heraus, dass ich Java 9 sowie Java 8 unter macOS installiert hatte. Java 9 gelöscht, jetzt läuft Maven gut. Siehe meine Antwort .
Basil Bourque
5

Ich hatte dieses Problem einmal und so habe ich es gelöst:

  • Schritt 1 Reinigen Sie Ihre
    .m2 / Repository

  • Schritt 2 Führen Sie den Befehl maven (zum Beispiel mvn clean verify) vom Terminal am aktuellen Projektspeicherort (wo die Datei pom.xml Ihres Projekts vorhanden ist) aus, anstatt maven von Eclipse aus auszuführen.
  • nityanarayan44
    quelle
    Dies machte die Sache noch schlimmer
    Karlihnos
    2

    Wenn Sie Ihre lokale .m2 / repository / ... nicht löschen möchten und eine Kopie von Maven von Apache heruntergeladen haben, können Sie Eclipse / STS diesen externen Maven verwenden lassen und die {maven} \ bearbeiten conf \ settings.xml, um Ihr localRepository auf einen neuen leeren Speicherort zu verweisen.

    <localRepository>C:\java\repository</localRepository>

    Natürlich haben Sie zusätzlich zu Ihrem vorherigen .m2-Speicherort ein neues Repository mit allen Maven-Quelldownloads.

    Geben Sie hier die Bildbeschreibung ein

    iowatiger08
    quelle
    2

    Überprüfen Sie das Eigenschaftstag endorsed.dirin Ihrem pom.xml.
    Ich hatte auch dieses Problem und habe es durch Ändern der Eigenschaft behoben.

    Beispiel:

    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>  
    venkad
    quelle
    1
    • Laden Sie das Maven Compiler Plugin Jar von Ihrem zentralen Repositoy herunter und versuchen Sie es
    • Wenn es immer noch fehlschlägt, überprüfen Sie Ihre JDK-Version. Dies liegt daran, dass Ihre Anwendung auf der Diff-JDK-Version basiert
    Divya Guduru
    quelle
    1

    Durch einen Neustart von Eclipse wurde dieser Fehler behoben!

    sau123
    quelle
    1

    Ich denke, Sie haben zwei Möglichkeiten, um dieses Problem zu lösen

    01. Eigenschaften festlegen

    • Legen Sie den Java-Erstellungspfad als jdk fest

    Klicken Sie mit der rechten Maustaste auf Projekt -> Java-Erstellungspfad -> Registerkarte Bibliotheken auswählen -> JRE-Systembibliothek auswählen -> Klicken Sie auf die Schaltfläche Bearbeiten -> Klicken Sie auf Installierte JREs -> Häkchen zum Feld hinzufügen -> Klicken Sie auf Bearbeiten -> Klicken Sie auf Verzeichnis -> JDK auswählen

    • Geben Sie an, welche Art von JDK-Version Sie installiert haben

    Klicken Sie mit der rechten Maustaste auf Projekt -> Projektfacetten -> kreuzen Sie Java an und wählen Sie Java-Version -> Übernehmen -> OK

    • Projekt aktualisieren

    Klicken Sie mit der rechten Maustaste auf "Projekt" -> Gehen Sie zu Maven-> Aktualisieren

    02.M2-Datei löschen

    Wenn Sie Ihr Problem mit den beiden oben genannten Themen nicht lösen können, führen Sie diese Aktion aus. Schließen Sie Ihr Projekt. Löschen Sie Ihren vollständigen .m2-Ordner

    Wie man eine .m2-Datei (Windows) bestraft

    Gehen Sie zu Local Disk (C) -> Users -> Wählen Sie Ihren PC-Namen ->. M2-Datei

    JustCode
    quelle
    1

    Java 9 nicht kompatibel

    Ich habe diesen Fehler beim Versuch, mvn installein Projekt aufzurufen , erhalten.

    Ich hatte Java 9 unter macOS sowie Java 8 Update 144 installiert. Mein Maven-Projekt hat anscheinend Java 9 aufgerufen und ist fehlgeschlagen. Java 9 wurde von meinem Mac entfernt und nur Java 8 wurde beibehalten. Maven baut nun glücklich mein Projekt zum erfolgreichen Abschluss auf.

    Verwenden von Apache Maven 3.5.0 unter macOS Sierra.

    Basil Bourque
    quelle
    0

    Vielleicht können Sie diese Abhängigkeit zu Ihrer pom.xml hinzufügen. Ich benutze diese Methode und löse das Problem!

    <dependency> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.3.2</version> 
    </dependency>
    FreeWong
    quelle
    0

    Suchen Sie für die neuen Benutzer unter Mac OS den Ordner .m2 und löschen Sie ihn auf Ihrer Datei /Users/.m2 Verzeichnis .

    Der Ordner .m2 wird im Finder (Datei-Explorer) nicht angezeigt. Für diesen Benutzer wird dieser Befehl zum Anzeigen versteckter Mac-Dateien verwendet

    $ Standardwerte schreiben com.apple.finder AppleShowAllFiles TRUE

    Danach drücken Sie Alt und klicken auf Finder-> Relaunch. Sie können /Users/.m2 sehen

    Um Dateien wieder auszublenden, verwenden Sie einfach diese $ defaults write com.apple.finder AppleShowAllFiles false

    Swadeshi
    quelle
    0

    Ich habe das .m2-Verzeichnis umbenannt, dies hat noch nicht geholfen, also habe ich das neueste sdk / jdk installiert und Eclipse neu gestartet. Das hat funktioniert.

    Es scheint, dass ein SDK benötigt wurde und ich nur eine JRE installiert hatte.

    Was seltsam ist, weil Eclipse auf demselben Computer für ein anderes älteres Projekt gearbeitet hat.

    Ich habe ein zweites Maven-Projekt importiert und die Run / Maven-Installation wurde erst nach dem Neustart von Eclipse abgeschlossen. Vielleicht war nur ein Neustart von Eclipse notwendig.

    Ein weiteres Projekt importieren und maven installzweimal ausführen müssen, bevor es funktioniert, obwohl ich Eclipse neu gestartet hatte.

    Addierer
    quelle
    0

    Es ist wirklich unglaublich, verpflichtet zu sein, den gesamten .m2 / Repository-Inhalt zu löschen. Ich schlage vor, diesen Befehl einzugeben (unter Windows):

    mvn sauber

    mvn -X package> my_log_file.log

    Der letzte Befehl aktiviert die Debug-Option und leitet die Ausgabe in eine Datei um. Öffnen Sie die Datei und suchen Sie nach den Schlüsselwörtern ERROR oder WARNING. Sie können diese Art von Ausdruck finden:

    DEBUG] =======================================================================
    [WARNING] The POM for javax.servlet:javax.servlet-api:jar:4.0.0 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for javax.servlet:javax.servlet-api:4.0.0
    [FATAL] Non-parseable POM C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom: processing instruction can not have PITarget with reserved xml name (position: END_TAG seen ...</profiles>\n\n</project>\n\n<?xml ... @160:7)  @ C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom, line 160, column 7
    
    [WARNING] The POM for org.glassfish:javax.json:jar:1.0.4 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for org.glassfish:javax.json:[unknown-version]
    [FATAL] Non-parseable POM C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom: processing instruction can not have PITarget with reserved xml name (position: END_TAG seen ...</profiles>\n\n</project>\n\n<?xml ... @160:7)  @ C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom, line 160, column 7

    In diesem Fall ist es wichtig zu verstehen, dass Sie nur das Verzeichnis C: \ Users \ vifie.m2 \ repository \ net \ java \ jvnet-parent \ 3 löschen müssen

    Kompilierung, Verpackung usw. neu starten:

    MVN-Paket

    WARNUNG verschwindet, nur weil Sie die an der richtigen Stelle beschädigte POM-Datei löschen und erneut herunterladen. Normalerweise ist die neue POM-Datei besser.

    Im Debug-Modus erhalten Sie häufig Nachrichten mit umfassenderen Details.

    Warum ich das Protokoll in eine Datei umleitung: Einfach, weil auf der Windows-Konsole nicht genügend Puffer zum Speichern aller Zeilen vorhanden ist und häufig nicht alle Zeilen angezeigt werden.

    Vifier Lockla
    quelle
    0

    Wir haben alles versucht, was bisher aufgeführt ist, und es ist immer noch fehlgeschlagen. Der Fehler auch erwähnt

    (default-war) für das Projekt utilsJava: Fehler beim Zusammenstellen des WAR: webxml-Attributs ist erforderlich

    Die Lösung, die das Problem endgültig behoben hat, war das Hinzufügen zu POM:

    <failOnMissingWebXml>false</failOnMissingWebXml>

    Wie hier erwähnt, ist ein Fehler beim Zusammenstellen des WAR - webxml - Attributs erforderlich

    Unser POM enthält jetzt Folgendes:

    <plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>${maven-war-plugin.version}</version>
    <configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
    <warName>${project.artifactId}</warName>
    <attachClasses>true</attachClasses>
    </configuration>
    </plugin>  
    RickInLosAngeles
    quelle
    0

    Entfernen Sie entweder den folgenden Code aus der Datei pom.xml oder korrigieren Sie Ihre Java-Version, damit sie funktioniert.

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    Sankara
    quelle
    -2

    Ich hatte das gleiche Problem und neben den Konfigurationen der oben genannten Beiträge setzen

                <plugin>
                <groupId>com.google.appengine</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>1.9.32</version>
                <configuration>
                    <enableJarClasses>false</enableJarClasses>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>endpoints_get_discovery_doc</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

    im Plugins-Element in pom.xml. Ich denke, das Problem war das Fehlen der Ausführung -> Ziel "endpoints_get_discovery_doc" in einigen Fällen wie meinem, also funktionierte dies für mich.

    MRTC
    quelle
    Während dieses Code-Snippet die Frage lösen kann, hilft eine Erklärung wirklich, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in Zukunft beantworten und diese Personen möglicherweise die Gründe für Ihren Codevorschlag nicht kennen.
    Yennsarah
    @ Amy danke für den Tipp, ich habe versucht zu erklären und ich hoffe, es ist mir gelungen.
    MRTC