Ich baue meine Apps mit Maven-3 und ich denke, nach der automatischen Aktualisierung des Maven-Surefire-Plugins auf 3.0.0-M1 kann ich nicht bauen und bekomme die untenstehenden Fehler.
Als ersten Schritt habe ich das Verzeichnis/org/Apache/maven in meinem Repository gelöscht. Ich stehe jedoch immer noch vor dem Problem. Kann mir jemand raten. Hinweis: Wenn ich das todsichere Plugin auf 2.x herunterstufen möchte, kann ich es bauen.
Fehlerprotokoll
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.444s
[INFO] Finished at: Thu Nov 08 16:04:53 GMT 2018
[INFO] Final Memory: 60M/704M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test (default-test) on project TEST_PROJECT: Execution default-test of goal org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test failed: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1': com.google.inject.ProvisionException: Guice provision errors:
[ERROR]
[ERROR] 1) No implementation for org.codehaus.plexus.languages.Java.jpms.LocationManager was bound.
[ERROR] while locating org.Apache.maven.plugin.surefire.SurefirePlugin
[ERROR] at ClassRealm[plugin>org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1, parent: [email protected]]
[ERROR] while locating org.Apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test)
[ERROR]
[ERROR] 1 error
[ERROR] role: org.Apache.maven.plugin.Mojo
[ERROR] roleHint: org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test
[ERROR] -> [Help 1]
org.Apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test (default-test) on project TEST_PROJECT: Execution default-test of goal org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test failed: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1'
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:225)
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(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
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: org.Apache.maven.plugin.PluginExecutionException: Execution default-test of goal org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test failed: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1'
at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:115)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:209)
... 19 more
Caused by: org.Apache.maven.plugin.PluginContainerException: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1'
at org.Apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.Java:488)
at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:92)
... 20 more
Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.codehaus.plexus.languages.Java.jpms.LocationManager was bound.
while locating org.Apache.maven.plugin.surefire.SurefirePlugin
at ClassRealm[plugin>org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1, parent: [email protected]]
while locating org.Apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test)
1 error
role: org.Apache.maven.plugin.Mojo
roleHint: org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.Java:257)
at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.Java:245)
at org.Apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.Java:455)
... 21 more
Caused by: com.google.inject.ProvisionException: Guice provision errors:
1) No implementation for org.codehaus.plexus.languages.Java.jpms.LocationManager was bound.
while locating org.Apache.maven.plugin.surefire.SurefirePlugin
at ClassRealm[plugin>org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1, parent: [email protected]]
while locating org.Apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=org.Apache.maven.plugins:maven-surefire-plugin:3.0.0-M1:test)
1 error
at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.Java:974)
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)
... 23 more
Sie können Ihre Maven-Version auf die neueste Version 3.6.0 aktualisieren, um dieses Problem zu beheben. Dies kann ab Version 3.3.9 Maven kompatibel sein.
Bei den Kommentaren zum Upgrade der Maven-Version haben wir unsere Maven-Version aktualisiert und konnten das Problem des todsicheren Plugins mit Maven 3.3.9 überwinden. Ich habe keine Probleme bekommen.
Ich fand heraus, dass meine NetBeans einen sehr alten Maven (3.0.5) verwendeten, obwohl ich einen brandneuen Maven installiert hatte.
Auf meinem Mac musste ich in das Menü "Netbeans/Preferences" gehen, die Registerkarte "Maven" auswählen und von "Bundled" wechseln, auf "Letzte" blättern und den obigen Fehler für mich beseitigen.
Ich hatte dieses Problem, bis ich herausfand, dass wir die Version des todsicheren Plugins nicht explizit angaben. Nachdem ich unsere pom.xml-Datei geändert habe, um die Version festzulegen, hat es funktioniert.
Ich stimme der Antwort von SomMS zu
Aber als FYI fand ich diesen Thread, sofort abgetan, dass die Maven-Version das Problem sein könnte, als ich gerade (letzte Woche) diesen RHEL baute VM und er war neu und glänzend ... 15 Minuten später habe ich mich entschlossen, die Maven-Version auf v3.0.5 zu überprüfen! Hoffentlich macht der nächste Kerl nicht den gleichen Fehler
Und wenn Sie sich fragen, wie Sie die installierte Version erhalten, versuchen Sie es
mvn --version
Ich habe den Vorschlag von @ SomMS verwendet und Maven aktualisiert, um das Problem zu beheben. Es funktionierte.
Das Problem ist, dass zum Zeitpunkt des Schreibens die neueste Version von Maven, die auf CentOS 7 verfügbar ist, 3.0.5 (Standard-Repository) ist, was sehr alt ist (Februar 2013). Den meisten anderen Distributionen stehen übrigens neuere Maven-Versionen zur Verfügung.
Meine einzige Lösung bestand darin, einen manuellen Download durchzuführen und den Pfad zu seiner Binärdatei in PATH
env-variable hinzuzufügen. Nachteil hier ist, dass jetzt rpm/yum nicht von seiner Existenz wissen.