【问题标题】:Removing a Version from a Maven Remote Repo从 Maven 远程存储库中删除版本
【发布时间】:2020-04-19 12:10:34
【问题描述】:

我目前一直在处理我的第一个 Maven 项目,并且对 Maven 版本控制有些困惑。我了解在开发新版本时,应在版本号中使用 SNAPSHOT 关键字。我也明白非 SNAPSHOT 版本只能发布一次。

我想知道是否可以从 Maven 远程存储库中删除旧版本。例如,如果我不想再下载1.0.2 的版本,我该怎么办?

另外,假设我正在开发版本1.0-SNAPSHOT。当我部署版本 1.0 时,最后一个 1.0-SNAPSHOT 版本是否会被其非 SNAPSHOT 对应版本删除/替换?

【问题讨论】:

    标签: java maven versioning


    【解决方案1】:

    对此的简单回答:发布版本(没有 SNAPSHOT)是不可变的。这包括它将永远保留。

    原因是:

    如果有人使用您的版本1.0.2,而您只需将其删除,那些 > 构建将在没有明显原因的情况下失败。

    关于你提到的事情的一句话:

    我也明白非 SNAPSHOT 版本只能发布一次。

    您不能两次发布相同的版本。永远不可能,也不应该。这意味着您将覆盖改变行为的现有版本。这也可能会破坏其他构建。

    您可以查看例如https://search.maven.org/artifact/javax.mail/mail,您会发现超过十五年的文物。它们永远不会被删除,因为可能有人在使用它们。

    如果您的版本1.0.2 有问题,只需创建一个新版本1.0.3 即可解决问题。版本号应遵循semantical versioning

    如果您在开发期间运行版本1.0-SNAPSHOT 并在1.0 发布期间发布它(通常通过maven-release-plugin),通常1.0-SNAPSHOT 版本将被自动删除。所以1.0-SNAPSHOT 不再可用。这是 Maven 存储库管理器的默认配置。

    【讨论】:

    • 好的,谢谢!还有一件事,是否可以删除 SNAPSHOT 版本?我目前正在使用我的1.0-SNAPSHOT(我还没有部署任何其他版本)。但是,我刚刚阅读了有关语义版本控制的指南,并意识到如果我的 1.0-SNAPSHOT 被版本化 0.1.0-SNAPSHOT 会更有意义 将在我的 POM.xml 中进行此更改只需替换我的 1.0-SNAPSHOT
    • 不客气。 SNAPSHOT 通常会在存储库管理器中的一段时间后自动删除 ...所以是的,将您的版本更改为 0.1.0-SNAPSHOT 并且您的第一个版本将是 0.1.0 ...如果您足够稳定,您可以创建一个 @ 987654337@其中...
    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 2023-02-17
    • 2011-09-03
    • 2017-08-15
    • 2014-06-04
    • 2013-02-10
    • 2014-11-19
    • 2014-09-09
    相关资源
    最近更新 更多