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

use*_*840 117 maven

mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*ell 116

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

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

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

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

mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId, ..."
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 实际上,在我检查之后,我意识到它确实卸载了`.jar`,但它仍然输出错误.所以对于手动安装的`.jar`,我建议手动删除而不是使用这种方法,因为maven创建了一些奇怪的文件,比如`yourjar.jar.lastUpdated`和`yourjar.pom.lastUpdated`你可能需要反正手动删除.但是,如果maven自动管理所有依赖项,这是卸载依赖项的好方法. (3认同)

小智 101

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

就像在Windows Documents and Settings\your username\.m2$home/.m2Linux上一样

  • 我只删除`.m2/repository目录`.同事之前删除了.m2目录并导致问题,因为在我们的项目中我们必须修改`settings.xml`文件. (9认同)
  • 请注意,删除`.m2/repository`目录时,您还将删除所有maven插件文件.使用`purge-local-repository`命令,您只删除依赖项. (7认同)
  • `.m2/repository`下的目录结构由Maven组ID组织,因此您只需删除与要删除的工件对应的子目录. (3认同)

rob*_*rse 16

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

mvn dependency:purge-local-repository -DreResolve=false
Run Code Online (Sandbox Code Playgroud)

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


Abi*_*san 11

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