【问题标题】:Can I remove a library from JCenter?我可以从 JCenter 中删除库吗?
【发布时间】:2023-03-29 07:05:02
【问题描述】:

我正在使用一些外部库,今天早上我偶然发现了一个想法:如果发布者从 JCenter、Maven Central 等中删除他的库怎么办? (我将只关注这两个主要仓库。)

根据this 和其他一些研究,Maven Central 似乎保存了库并且您无法删除某些内容。

但是,对于 JCenter,我无法找到准确的答案。所以我创建了自己的 Bintray 帐户,创建了一个包并将一些库推送给它。然后我通过单击此按钮将其链接到 JCenter(并在 6 小时后等待成为接受者,但为什么?(合法问题)):

现在我有了一个可以从带有 Jcenter 的 Android Studio 项目中访问的库,我试图在 Bintray 帐户中搞乱。

来自this threadthe documentation,我应该可以删除一些东西,让我的整个包裹消失。我唯一能做的就是删除帐户、完整的包或版本。我还没有测试它,因为根据线程,JCenter 会创建它的副本,如果您不取消链接,我将无法控制它。 但是,我无法像在文档中那样手动删除版本中的一个文件,也无法像在线程中那样从我的包中“取消链接”JCenter。

所以,我有多个问题:

  • 所有这些都是必要的吗?
  • 是否有可能删除某些内容?
  • 我是否应该复制我在本地使用的每个库(同时复制每个库的依赖项)?
  • JCenter 在人们所说的和我看到的之间发生了什么?

【问题讨论】:

标签: android maven bintray jcenter maven-central


【解决方案1】:

Jcenter 被设计成不可变的,因为它为依赖其软件包的许多用户提供服务。

一旦一个包链接到 jcenter,它就会一直存在。

如果所有者删除了包,bintray 会通过声明所有权来确保它保持可用(创建包的副本以归 jcenter 所有)。

最好的做法是仅在您的版本中的代码准备好生产后才将您的包链接到 jcenter。最初的包含是一次性的过程。一旦您在 jcenter 中获得了自己的路径命名空间,您将发布的任何新版本都将自动出现在 jcenter 中。

在将文件/版本发布到 bintray 后,您有 180 天的宽限期来删除它们。之后,它们将变为不可变且无法删除。

如果您仍处于宽限期,您也可以从链接包中删除特定文件或版本,但您将损害您作为 oss 发布者的声誉!因为人们将导入这些版本来自 jcenter,您将破坏他们的代码。这被认为是不好的做法。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多