Maven erreur de package: org.apache.commons-lang n'existe pas (Java)
Je suis en utilisant MyEclipse de développer un vraiment simple Java Struts projet. Tout fonctionnait bien jusqu'à ce que j'ai voulu utiliser le StringUtils
classe dans org.apache.commons.lang. Dans MyEclipse j'ai importé le package comme
import org.apache.commons.lang.StringUtils;
J'ai ajouté le fichier Jar pour commons-lang-2.4 à mon build path. Tout cela fonctionne très bien et dandy, et j'ai l'Intellisense et pas d'erreurs dans Eclipse ou quoi que ce soit. Maintenant, quand je vais faire un mvn clean package
, j'obtiens un message d'erreur indiquant que
Le package org.apache.commons.lang n'existe pas
J'ai vérifié dans mon war/Pom.xml fichier et je l'ai déclaré en tant que dépendance
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
De ma recherche, j'ai pensé que Maven doit télécharger le logiciel et l'installer sur mon dépôt local si il n'existe pas. J'ai vérifié le référentiel et le fichier jar qui était là. J'ai pensé que le jar fichier doit être corrompu, donc j'ai supprimé le commons-lang dossier pour obtenir un nouveau téléchargement de commons-lang. Maintenant c'est où il souffle mon esprit, après je l'ai supprimé à partir du référentiel local et a couru un mvn clean package
, il va et télécharge le commons-lang-2.1.pom et jar (même si la pom.xml a 2.4) MAIS donne encore une compilation d'échec en disant que le package org.apache.commons.lang n'existe pas.
Je n'ai pas été à l'aide de Maven pour très longtemps donc je ne suis pas sûr de la façon d'aller sur la résolution de ce. Ai-je raté quelque chose? Ai-je besoin d'ajouter la dépendance à l'autre pom.xml fichier quelque part d'autre?
- Vous ne savez pas si il y a de la corruption de fichiers ou quoi, mais après confirmation de dépendances via @TomaszNurkiewicz de la méthode, j'ai pu résoudre ce problème en supprimant le bocal de mon local m2 référentiel quand j'ai couru les tests.
- Tout d'abord, j'ai supprimé commons-lang dans le dépôt, et cela a fonctionné.
Vous devez vous connecter pour publier un commentaire.
Essayez d'exécuter les commandes suivantes et examinez la sortie:
Recherchez
commons-lang
, peut-être quelque chose qui va attirer votre attention comme exclut ou de dépendance à des remplacements. Aussi, est:copie
commons-lang
BOCAL à votretarget
?L'ajout suivant à la dépendance à pom.xml dans les dépendances de la balise qui m'a aidé:
J'ai fait "mvn clean install-U" sans settings.xml, de sorte qu'il a commis une erreur. Ensuite, j'ai ajouté settings.xml, a fait "mvn clean install-U", il a dit "erreur:org.apache.commons-lang n'existe pas". Je sais que le code a été construit avec succès sur une autre machine. Donc ce n'était pas mon code. Après environ 2 ou 3 heures, j'ai finalement réalisé que c'était .m2\référentiel a été corrompu par mon premier run. Donc, il suffit de supprimer "référentiel" dossier complet et exécutez la commande "mvn clean install-U" et a réussi.
Dans src/main/java, il y aurait un .auth dossier. Ouvrez le dossier, Allez à AuthController.java fichier et supprimer l'importation io.swagger ligne. Redémarrez.