J'utilise Maven 3.0.5 et Spring Tool Source 3.2 avec le plugin Maven installé. Lorsque j'essaie de faire `` Exécuter en tant que ---> Installation de Maven '', j'obtiens l'erreur suivante:
[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
Veuillez trouver ci-dessous mon 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>
Pendant l'installation de maven, mon objectif est war:war
de créer WAR de mon application.
java
maven-3
maven-compiler-plugin
Rushi Shah
la source
la source
Réponses:
La suppression
.m2/repository
du référentiel local complet a résolu mon problème.Sinon, vous devez savoir quels plugins utilisez-vous exactement avec leurs dépendances, car l'un des plugins a rencontré un problème lors du téléchargement.
la source
.m2/repository
pour ne pas supprimersettings.xml
dans le.m2
répertoirerm -rf rm -rf ~/.m2/repository/org/apache/
travaille pour moi.La suppression du référentiel local .m2 complet a également résolu mon problème.
Si vous ne savez pas où il se trouve, les emplacements sont:
la source
%USERPROFILE%
vous mènera à votre répertoire de profil où.m2
se trouve le dossier.J'ajoute plus de points à la solution par @Rushi Shah
mvn clean install -X
aide à identifier la cause profonde.Certaines des phases importantes du cycle de vie de construction de Maven sont:
clean
- le projet est exempt de tous les artefacts provenant des compilations précédentescompile
- le projet est compilé dans le répertoire / target de la racine du projetinstall
- l'archive empaquetée est copiée dans le référentiel maven local (pourrait dans le répertoire personnel de votre utilisateur sous /.m2)test
- les tests unitaires sont runpackage
- les sources compilées sont empaquetées dans l'archive (JAR par défaut)La balise 1.6 under fait référence à la version JDK. Nous devons nous assurer que la bonne version de jdk dans notre environnement de développement ou changer la valeur en 1.7 ou 1.5 ou autre si l'application peut être prise en charge dans cette version de JDK.
Nous pouvons trouver les détails complets sur le cycle de vie des builds Maven sur le site Maven.
la source
J'ai eu le même problème, vérifiez le jre installé utilisé par Maven dans votre configuration d'exécution ...
Dans votre cas, je pense que le maven-compiler-plugin: jar: 2.3.2 a besoin d'un jdk1.6
Pour ce faire: Exécutez Configuration> YOUR_MAVEN_BUILD> JRE> Autre JRE
J'espère que cela t'aides.
la source
Parfois, cela est dû au fait que le projet pointe vers JRE plutôt que JDK.
1.Cliquez avec le bouton droit sur le projet -> Chemin de construction -> Configurer le chemin de construction -> Ajouter une bibliothèque -> Bibliothèque système JRE -> Environnements -> JRE installés -> Pointez sur le dossier java dans le lecteur c: (Windows ) et sélectionnez le dossier JDK et ok.
Supprimez le JRE déjà présent du chemin de génération.
la source
Habituellement, définir maven-compiler-plugin suffit. ajoutez ce qui suit à la définition de votre plugin de compilation.
la source
Parfois, ce problème vient du fait que la version java.version que vous avez mentionnée dans POM.xml n'est pas celle installée sur votre machine.
Assurez-vous de mentionner exactement la même version dans votre pom.xml que les versions jdk et jre présentes sur votre machine.
la source
J'ai eu ce problème une fois, et voici comment je l'ai résolu:
mvn clean verify
) à partir du terminal à l'emplacement actuel du projet (où se trouve le fichier pom.xml de votre projet) au lieu d'exécuter maven depuis eclipse.la source
En fait, si vous ne voulez pas supprimer votre .m2 / repository / ... local et que vous avez une copie téléchargée de Maven depuis Apache, vous pouvez faire en sorte qu'Eclipse / STS utilise ce Maven externe et vous pouvez modifier le {maven} \ conf \ settings.xml pour pointer votre localRepository vers un nouvel emplacement vide.
Bien sûr, vous aurez un nouveau référentiel avec tous les téléchargements de sources maven en plus de votre emplacement .m2 précédent.
la source
vérifiez l'
endorsed.dir
étiquette de propriété dans votrepom.xml
.J'ai également eu ce problème et je l'ai résolu en modifiant la propriété.
Exemple:
la source
la source
Pour moi, redémarrer Eclipse a éliminé cette erreur!
la source
Je pense que vous avez deux façons de résoudre ce problème
01. Définir les propriétés
02.Supprimer le fichier .m2
Si vous ne pouvez pas résoudre votre problème en utilisant les deux sujets ci-dessus, obtenez cette action. Fermez votre projet. Supprimez votre dossier .m2 complet
Comment infliger une amende au fichier .m2 (Windows)
la source
Java 9 incompatible
J'ai eu cette erreur en essayant d'appeler
mvn install
un projet.J'avais installé Java 9 sur macOS ainsi que Java 8 Update 144. Mon projet Maven invoquait apparemment Java 9 et échouait. Suppression de Java 9 de mon Mac, ne laissant que Java 8 en place. Maven est maintenant en train de construire mon projet avec bonheur.
Utilisation d'Apache Maven 3.5.0 sur macOS Sierra.
la source
Vous pouvez peut-être ajouter cette dépendance à votre pom.xml. J'utilise cette méthode et je résous le problème!
la source
pour les nouveaux utilisateurs sur Mac OS, recherchez le dossier .m2 et supprimez-le, il se trouve dans votre répertoire /Users/.m2 .
vous ne verrez pas le dossier .m2 dans le Finder (Explorateur de fichiers), pour cet utilisateur, cette commande permet d'afficher les fichiers cachés de Mac
$ defaults écrit com.apple.finder AppleShowAllFiles TRUE
après cela, appuyez sur alt et cliquez sur finder-> relancer, vous pouvez voir /Users/.m2
pour masquer à nouveau les fichiers, utilisez simplement cette $ defaults write com.apple.finder AppleShowAllFiles false
la source
J'ai renommé le répertoire .m2, cela n'a pas encore aidé, j'ai donc installé le dernier sdk / jdk et redémarré eclipse. Cela a fonctionné.
Il semble qu'un SDK était nécessaire et je n'avais installé qu'un JRE.
Ce qui est étrange, car eclipse a travaillé sur la même machine pour un autre projet plus ancien.
J'ai importé un deuxième projet maven et l'installation de Run / maven ne s'est terminée qu'après le redémarrage de eclipse. Alors peut-être qu'un simple redémarrage de l'éclipse était nécessaire.
Importer encore un autre projet, et
maven install
j'ai dû faire deux fois avant que cela fonctionne même si j'avais redémarré eclipse.la source
C'est vraiment incroyable d'être obligé d'effacer tout le contenu .m2 / référentiel. Je suggère de taper cette commande (sous Windows):
La dernière commande active l'option Debug et redirige la sortie vers un fichier. Ouvrez le fichier et recherchez les mots clés ERREUR ou AVERTISSEMENT. Vous pouvez trouver ce genre d'expression:
Il est préférable dans ce cas de comprendre qu'il vous suffit de supprimer le répertoire C: \ Users \ vifie.m2 \ repository \ net \ java \ jvnet-parent \ 3
Relancez la compilation, le packaging et ainsi de suite:
AVERTISSEMENT disparaître simplement parce que vous supprimez le fichier POM corrompu au bon emplacement et que vous devez le télécharger. Normalement, le nouveau fichier POM est meilleur.
Le mode débogage vous donne souvent des messages avec des détails plus complets.
Pourquoi je redirige le journal vers un fichier: Tout simplement parce que sur la console Windows, il n'y a pas assez de tampon pour stocker toutes les lignes et souvent vous ne pouvez pas voir toutes les lignes.
la source
Nous avons tout essayé jusqu'à présent et cela a toujours échoué. L'erreur a également mentionné
La solution qui a finalement résolu le problème était d'ajouter ceci à POM:
Comme mentionné ici Erreur lors de l'assemblage de WAR - l'attribut webxml est requis
Notre POM contient maintenant ceci:
la source
Supprimez le code ci-dessous du pom.xml ou corrigez votre version java pour que cela fonctionne.
la source
j'ai eu le même problème et en plus des configurations des messages ci-dessus,
dans l'élément plugins dans pom.xml. Je pense que le problème était l'absence d' exécution -> objectif "endpoints_get_discovery_doc" dans certains cas comme le mien, donc cela a fonctionné pour moi.
la source