如何从本地maven存储库中删除jar文件,该存储库是使用install:install-file添加的?

时间:2013-03-12 10:35:02

标签: maven

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

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

6 个答案:

答案 0 :(得分:106)

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

标准Maven依赖插件上的目标purge-local-repository将从缓存中删除本项目此项目的依赖项。 (可选)您可以同时从远程存储库重新解析它们。

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

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

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

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

完整文档位于maven-dependency-plugin规范。

注意:maven dependency插件的旧版本有一个manual-purge-local-repository目标,现在(版本2.8)使用manualInclude隐含了该目标。还应阅读manualIncludes(带s)的文档。

答案 1 :(得分:95)

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

在Linux上的Documents and Settings\your username\.m2$home/.m2上这样的

答案 2 :(得分:15)

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

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

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

答案 3 :(得分:11)

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

答案 4 :(得分:0)

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

答案 5 :(得分:-2)

  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