【问题标题】:How to remove an artifact version from a local Maven repository如何从本地 Maven 存储库中删除工件版本
【发布时间】:2018-06-12 14:26:52
【问题描述】:

假设我有一个包含两个版本的存储库:1.1 和 1.2:

com/mycomp/myproj/1.1/
com/mycomp/myproj/1.2/
com/mycomp/myproj/maven-metadata.xml

最新文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>com.mycomp</groupId>
  <artifactId>myproj</artifactId>
  <versioning>
    <release>1.2</release>
    <versions>
      <version>1.1</version>
      <version>1.2</version>
    </versions>
    <lastUpdated>20180606133322</lastUpdated>
  </versioning>
</metadata>

是否有工具或方法可以删除 1.2 版并将 maven-metadata.xml 更改为不声明它而无需手动编辑文件?我研究了 mvn 命令,但看起来它只适用于 maven 项目,而我的 maven 存储库是由 gradle 和 maven 插件填充的。

【问题讨论】:

标签: java maven gradle


【解决方案1】:

您的本地 maven 存储库默认位于 $HOME/.m2/repository,因此只需进入文件系统并删除文件夹

$HOME/.m2/repository/com/mycomp/myproj/1.2/

您还可以删除每次执行时重新创建的 maven-metadata.xml 文件

mvn clean install.

【讨论】:

  • 感谢您的建议。你是对的,我可以删除 1.2 文件夹。但如果我将删除 maven-metadata.xml,然后使用“./gradle uploadArchives”推送新版本(请记住,我没有 maven 项目,只有 gradle 一个),但在这种情况下重新创建了 maven-metadata。 xml 将不再包含版本 1.1,尽管文件夹 1.1 仍然存在。所以我正在寻找更智能的方法来删除会自动为我调整 maven-metadata.xml 的版本。我知道我最终还是自己编写了这个工具
  • @LeonidYurchenko gradle 无论如何都在使用 maven。您可以在 ~/.m2/repository 下快速和松散地删除目录,maven/gradle 将根据需要重新创建它们。将其视为缓存。如果你满意,你会接受我的回答吗,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 2010-11-15
  • 2011-12-25
相关资源
最近更新 更多