132
mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar

我使用上面的命令将本地 jar 安装到 maven 本地 repo 中。现在我已经从 maven repo 获得了依赖。我想从本地仓库中删除它。如何清洁它?

4

6 回答 6

135

尽管手动删除文件是可行的,但有一种官方方法可以从本地(缓存)存储库中删除项目的依赖项,并可以选择从远程存储库中重新解析它们。

purge-local-repository标准 Maven 依赖插件上的目标将从缓存中删除该项目本地安装的依赖项。或者,您可以同时从远程存储库重新解析它们。

这应该用作项目阶段的一部分,因为它适用于包含项目的依赖项。默认情况下,传递依赖项也将被清除(本地)。

如果要从缓存中显式删除单个工件,请purge-local-repositorymanualInclude参数一起使用。例如,从命令行:

mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId, ..."

该文档暗示默认情况下这不会删除传递依赖项。如果您使用非标准缓存位置或在多个平台上运行,这些比“手动”删除文件更可靠。

完整的文档在maven-dependency-plugin规范中。

注意:旧版本的 mavendependency插件有一个manual-purge-local-repository目标,现在(2.8 版)使用manualInclude. manualIncludes(with an )的文档s也应该被阅读。

于 2013-08-07T14:02:47.667 回答
115

虽然您可以执行一个 maven 命令来执行此操作,但从存储库中手动删除文件会更容易。

像这样在 WindowsDocuments and Settings\your username\.m2$HOME/.m2Linux 上

于 2013-03-12T10:41:34.317 回答
21

至少在当前的 maven 版本上,如果您打算从本地存储库中删除依赖项而不重新下载它们,则需要添加开关 -DreResolve=false。

mvn dependency:purge-local-repository -DreResolve=false

删除依赖项而不再次下载它们。

于 2015-01-15T07:51:07.820 回答
13

~/.m2/repository/phonegap/1.1.0/如果您使用的是 linux 操作系统,请删除本地目录下的所有内容(jar、pom.xml 等) 。

于 2013-03-12T10:38:23.560 回答
-1

我遇到了同样的问题,经历了上面的所有建议,但没有任何效果。最后我删除了 .m2 和 .ivy 文件夹,它对我有用。

于 2019-05-11T09:45:30.330 回答
-8
  1. cd ~/.m2
  2. git init
  3. git commit -am "some comments"
  4. cd /path/to/your/project
  5. mvn install
  6. cd ~/.m2
  7. git reset --hard
于 2017-12-14T06:24:37.287 回答