如何删除 maven 获取的缓存本地工件?

Posted

技术标签:

【中文标题】如何删除 maven 获取的缓存本地工件?【英文标题】:How do I remove a cached local artifact that maven fetched? 【发布时间】:2013-07-07 10:30:31 【问题描述】:

运行 maven 命令后,jboss 工件缓存在我的本地 repo /.m2 中。但是,这是错误的副本,我们已经在本地服务器上更新了我们的工件。如何删除此缓存副本? (除了从/.m2/repository/org 文件夹中手动删除jboss 文件夹)。是否有 Maven 命令可以这样做?另外,我想知道本地存储库的结构究竟如何,是否以任何方式根据groupId, artifactId, version (GAV)

【问题讨论】:

【参考方案1】:

快照可以在构建具有依赖项的项目时通过使用-U 选项和mvn 强制更新工件。 Maven 将获取指定版本的最新可用快照。您必须先将固定的快照工件部署到存储库。最新的快照由附加到 jar 文件名的时间戳决定。

但是,release 版本不会更新。下载并验证发布工件后,如果您在远程存储库上替换它,则必须手动删除它。通常,您应该永远不要替换发布版本的工件。相反,您应该始终发布新版本(并可能从存储库中删除错误版本)并更改使用此工件的项目的 pom.xml 文件。

有关本地/远程存储库的结构,请参见下面的链接。

参考资料:

Force maven update maven artifact repository directory structure specs Maven repository layout

【讨论】:

以上是关于如何删除 maven 获取的缓存本地工件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Hudson 中删除不需要的构建工件

使用 gradle 发布到 maven 时删除附加到工件名称的默认 date.time

常春藤从常春藤缓存中删除不需要的(旧)工件

如何让 sbt 使用本地 Maven 代理存储库(Nexus)?

Maven - 如何使用本地文件夹中的工件? [复制]

Maven:在尝试在线之前如何配置以使用本地存在的工件(~/.m2/repository)?