Comment avez-vous clairement Apache Maven cache?
Récemment, Apache Maven semble avoir des problèmes de mise en cache. L'exécution clean installe sur nos projets à l'aide de Windows Vista ou Windows 7, parfois produire des artefacts avec les mêmes données dans une version précédente, même si la plus récente de cet artefact fichiers doivent avoir été mis à jour.
Est-il un moyen d'effacer ce cache, à force de maven pour toujours déclencher une nouvelle version de l'locale artefact qui devrait être construit?
En particulier, nous allons avoir des problèmes de construction d'une webapp avec la guerre plugin. Maven version 3.0.3. La guerre plugin version 2.1.1.
- Avez-vous essayé le
-U
drapeau qui sera mise à jour des artefacts? - Pouvez-vous donner plus de détails? Sont les personnes à la charge de ne pas obtenir de mises à jour dans la guerre? Si oui, sont les personnes à charge ayant INSTANTANÉ versions?
- Est-ce un projet multimodule? Avez-vous vérifié le numéro de version de la depdendent modules? Pourriez-vous reproduire?
mvn clean install
mettre les nouveaux artefacts dans le dépôt local? - Pouvons-nous s'il vous plaît avoir une forte réponse ici. Ou vous pouvez écrire une solution si vous avez trouvé tout sur votre propre.
mvn clean install -Dmaven.repo.local=/alternate/repo/location
Vous devez vous connecter pour publier un commentaire.
Supprimer les artefacts (ou de la totalité des locaux repo) à partir de
c:\Users\<username>\.m2\repository
à la main.The action can't be completed because the folder or file in it is open in another program. Close the folder or file and try again.
mvn dependency:purge-local-repository
enfin travailléPour nettoyer le cache local, essayez d'utiliser la dépendance plug-in.
mvn dependency:purge-local-repository
: C'est une tentative pour supprimer le référentiel local des fichiers, mais il en va toujours ainsi et remplit le référentiel local après que les choses ont été supprimés.mvn dependency:purge-local-repository -DreResolve=false
: Cela évite la re-résolution des dépendances, mais semble encore d'aller sur le réseau à la fois.mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false
: Il a été ajouté par Paweł Prażak et semble bien fonctionner. J'aimerais utiliser la troisième si vous voulez le repo local vidé, et la première si vous voulez juste jeter le repo local et obtenir les dépendances de nouveau.Avez-vous vérifié/modifié le updatePolicy paramètres de vos dépôts dans votre
settings.xml
.Essayer de la mettre à l'
always
.<updatePolicy>
dans mon pom.xml mais il y a<snapshotPolicy>
Je ferais le suivant:
Les drapeaux dire maven ne pas essayer de résoudre les dépendances ou de frapper le réseau. Supprimer ce que vous voyez à l'échelle locale.
Et pour faire bonne mesure, ignorer les erreurs (
--fail-at-end
) jusqu'à la fin. C'est parfois utile pour des projets qui ont un peu foiré ensemble de dépendances ou de s'appuyer sur un peu foiré référentiel interne (ça arrive.)Cela fonctionne sur le Printemps de l'Outil de la Suite v 3.1.0.LIBÉRER, mais je suppose que c'est aussi disponible sur Eclipse ainsi.
Après la suppression des artefacts à la main (comme indiqué par palacsint ci-dessus) dans le //nom d'utilisateur/.m2 répertoire, ré-indexer les fichiers de la manière suivante:
Aller pour Windows->Préférences->Maven->Paramètres de l'Utilisateur menu.
Cliquez sur le "Revisiter" bouton à côté de "Référentiel Local zone de texte". Cliquez sur "Appliquer" puis "OK" et vous avez terminé.
Que certaines réponses ont souligné, parfois vous voulez vraiment supprimer le référentiel local entièrement, par exemple, il pourrait y avoir certains objets qui ne peuvent pas être purgés comme ils ne sont plus référencés par le pom.
Si vous voulez avoir cette suppression incorporé dans un maven phase, comme par exemple
clean
vous pouvez utiliser lemaven-clean-plugin
et accéder au dépôt par l'intermédiaire des paramètres, par exemple:Donc il y a des commandes que vous pouvez utiliser pour le nettoyage
également la suppression de dépôt de dossier de .m2 qui peut aider.