254 votes

Comment vider le cache d'Apache Maven ?

Récemment, Apache Maven semble avoir des problèmes de mise en cache. L'exécution d'installations propres sur nos projets utilisant Windows Vista ou Windows 7 produit parfois des artefacts avec les mêmes données qu'une construction précédente, alors que les fichiers de l'artefact le plus récent auraient dû être mis à jour.

Existe-t-il un moyen de vider ce cache pour forcer maven à toujours déclencher une construction propre de l'artefact local qui doit être construit ?

En particulier, nous avons des problèmes pour construire une application web avec le plugin war. La version de Maven est 3.0.3. La version du plugin War est 2.1.1.

265voto

palacsint Points 9823

Supprimer les artefacts (ou le repo local complet) à partir de c:\Users\<username>\.m2\repository à la main.

205voto

Brian C. Points 464

Pour nettoyer le cache local, essayez d'utiliser le plug-in de dépendance.

  1. mvn dependency:purge-local-repository : C'est une tentative de supprimer les fichiers du référentiel local mais il va toujours remplir le référentiel local après que les choses aient été supprimées.
  2. mvn dependency:purge-local-repository -DreResolve=false : Cela évite la re-résolution des dépendances mais semble toujours aller sur le réseau par moments.
  3. mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false : Ceci a été ajouté par Paweł Prażak et semble bien fonctionner. J'utiliserais la troisième si vous voulez que le repo local soit vidé, et la première si vous voulez juste jeter le repo local et récupérer les dépendances.

14voto

luis.espinal Points 4145

Je ferais ce qui suit :

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end

Les drapeaux indiquent à maven de ne pas essayer de résoudre les dépendances ou d'utiliser le réseau. Supprimez ce que vous voyez localement.

Et pour faire bonne mesure, ignorez les erreurs ( --fail-at-end ) jusqu'à la fin. C'est parfois utile pour les projets qui ont un ensemble de dépendances quelque peu désordonné ou qui reposent sur un référentiel interne quelque peu désordonné (cela arrive.)

13voto

FrVaBe Points 14559

Avez-vous vérifié/changé le Politique de mise à jour pour vos référentiels dans votre settings.xml .

Cet élément spécifie la fréquence à laquelle les mises à jour doivent tenter de se produire. Maven comparera l'horodatage du POM local (stocké dans le fichier maven-metadata d'un dépôt) à celui du dépôt distant. Les choix sont : always, daily (par défaut), intervalle:X (où X est un nombre entier en minutes) ou jamais.

Essayez de le régler sur always .

6voto

Felby Points 1226

Cela fonctionne avec la version 3.1.0.RELEASE de Spring Tool Suite, mais je suppose qu'elle est également disponible sur Eclipse.

Après avoir supprimé les artefacts à la main (comme indiqué par palacsint ci-dessus) dans le fichier /username/.m2 réindexez les fichiers en procédant comme suit :

Allez-y :

  • Windows->Preferences->Maven->User Settings menu.

Cliquez sur le bouton Reindex à côté du bouton Local Repository boîte de texte. Cliquez sur "Appliquer" puis sur "OK" et le tour est joué.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X