如何从install:install-file添加的本地Maven存储库中删除jar文件?


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

我使用上述命令将本地jar安装到Maven本地仓库中。现在,我已经从Maven回购中获得了依赖。我想从本地仓库中删除它。如何清洁呢?


Answers:


107

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

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


10
我只会删除.m2/repository directory。一位同事之前已删除.m2目录,这会导致问题,因为在我们的项目中,我们必须修改settings.xml文件。
提里斯(Tiris),2015年

7
请注意,删除.m2/repository目录后,您还将删除所有maven插件文件。而使用purge-local-repository命令仅删除依赖项。
collinhaines

3
下面的目录结构.m2/repository是按Maven组ID进行组织的,因此您只需删除与要删除的工件相对应的子目录即可。
凯文·克鲁姆维德

124

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

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

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

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

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

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

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

注意:较早版本的maven dependency插件有一个manual-purge-local-repository目标,使用(现在是2.8版)意味着该目标manualIncludemanualIncludes(带有s)的文档也应阅读。


我认为这不适用于.jar未从Maven Central或其他存储库下载的。当我运行此命令时,它会删除所有.jar自动下载的s,但是当它到达.jar我手动安装的s时,它会输出以下错误消息: [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 ...
stiemannkj1 2014年

3
实际上,在检查之后,我意识到它确实卸载了.jar,但仍然输出错误。因此,对于.jar已手动安装的s,我建议手动删除而不是使用此方法,因为maven会创建一些奇怪的文件,例如yourjar.jar.lastUpdatedyourjar.pom.lastUpdated而您可能仍需要手动删除它们。但是,如果maven自动管理所有依赖项,那么这是卸载依赖项的好方法。
stiemannkj1 2014年

此方法还需要一个maven项目才能运行命令。如果您运行了在Gradle构建的上下文中指定的OP的安装命令,这似乎不起作用。
jdonmoyer 2014年



0

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


-5
  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

4
这个答案可能会或可能不会解决问题,但是如何在答案中添加一些解释,这可能只会帮助OP理解您要向他展示的内容。
Gerhard

2
此响应与问题无关:您在.m2文件夹中显示git仓库的设置,并将其重置为git仓库。
lquitadamo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.