mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
J'utilise la commande ci-dessus pour installer le jar local dans le repo local maven. Maintenant, j'ai la dépendance de maven repo. Je souhaite supprimer cela du dépôt local. Comment le nettoyer?
Réponses:
Bien qu'il existe une commande maven que vous pouvez exécuter pour ce faire, il est plus facile de simplement supprimer les fichiers manuellement du référentiel.
Comme ça sur Windows
Documents and Settings\your username\.m2
ou$HOME/.m2
sous Linuxla source
.m2/repository directory
. Un collègue a déjà supprimé le répertoire .m2 et cela pose des problèmes car sur notre projet, nous devons modifier lesettings.xml
fichier..m2/repository
répertoire, vous supprimerez également tous les fichiers du plugin maven. Alorspurge-local-repository
qu'en utilisant la commande, vous supprimez uniquement les dépendances..m2/repository
est organisée par ID de groupe Maven, vous pouvez donc simplement supprimer le sous-répertoire correspondant à l'artefact que vous souhaitez supprimer.Bien que la suppression manuelle des fichiers fonctionne, il existe un moyen officiel de supprimer les dépendances de votre projet de votre référentiel local (cache) et de les resoudre éventuellement à partir de référentiels distants.
L'objectif
purge-local-repository
, sur le plugin de dépendance standard Maven, supprimera les dépendances installées localement de ce projet de votre cache. Vous pouvez éventuellement les resoudre à partir des référentiels distants en même temps.Cela doit être utilisé dans le cadre d'une phase de projet car il s'applique aux dépendances du projet conteneur. Les dépendances transitives seront également purgées (localement) par défaut.
Si vous souhaitez supprimer explicitement un seul artefact du cache, utilisez-le
purge-local-repository
avec lemanualInclude
paramètre. Par exemple, à partir de la ligne de commande:La documentation implique que cela ne supprime pas les dépendances transitives par défaut. Si vous exécutez avec un emplacement de cache non standard, ou sur plusieurs plates-formes, ceux-ci sont plus fiables que la suppression des fichiers "à la main".
La documentation complète se trouve dans la spécification maven-dependency-plugin .
Remarque : les anciennes versions du
dependency
plugin maven avaient unmanual-purge-local-repository
objectif, qui est maintenant (version 2.8) implicite par l'utilisation demanualInclude
. La documentation pourmanualIncludes
(avec uns
) doit également être lue.la source
.jar
s qui n'ont pas été téléchargés depuis maven central ou un autre référentiel. Lorsque j'exécute cette commande, il se débarrasse de tous les.jar
s qui ont automatiquement téléchargé, mais quand il arrive au.jar
s que j'ai installé manuellement, il[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project alloy-generator: Failed to refresh project dependencies for: myartifact: required artifacts missing: [ERROR] manually-downloaded-and-installed.jar ...
.jar
, mais qu'il génère toujours une erreur. Donc, pour les.jar
s qui ont été installés manuellement, je recommanderais de supprimer manuellement plutôt que d'utiliser cette méthode, car maven crée des fichiers étranges commeyourjar.jar.lastUpdated
etyourjar.pom.lastUpdated
que vous devrez peut-être supprimer manuellement de toute façon. Mais si maven gérait automatiquement toutes les dépendances, c'est un excellent moyen de désinstaller les dépendances.Au moins sur la version actuelle de maven, vous devez ajouter le commutateur -DreResolve = false si vous avez l'intention de supprimer les dépendances de votre dépôt local sans les télécharger à nouveau.
supprime les dépendances sans les télécharger à nouveau.
la source
Supprimez tous les éléments (jar, pom.xml, etc.) de votre
~/.m2/repository/phonegap/1.1.0/
répertoire local si vous utilisez un système d'exploitation Linux.la source
J'ai fait face au même problème, j'ai parcouru toutes les suggestions ci-dessus, mais rien n'a fonctionné. Enfin, j'ai supprimé les dossiers .m2 et .ivy et cela a fonctionné pour moi.
la source
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard
la source