我可以从JCenter中删除库吗?

时间:2017-08-09 10:39:35

标签: android maven bintray jcenter maven-central

我正在与一些外部图书馆合作,今天早上我偶然发现了一个想法:如果发布者从JCenter,Maven Central等删除他的图书馆怎么办? (我只关注那两个主要的回购。)

根据this和其他一些研究,Maven Central似乎保存了库,你无法删除。

然而,对于JCenter,我无法找到准确的答案。所以我创建了自己的Bintray帐户,创建了一个包并将一些库推送到它。然后我点击这个按钮将它链接到JCenter(等待6小时后接受,为什么呢?(合法问题)):

enter image description here

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

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

所以,我有很多问题:

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

1 个答案:

答案 0 :(得分:5)

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

一旦包裹链接到jcenter,它就会留下来。

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

最佳做法是仅在您的版本中的代码生产就绪后才将您的包链接到jcenter。最初的包含是一次性过程。在jcenter中授予自己的路径名称空间后,您发布的任何新版本都将自动显示在jcenter中。

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

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

希望这会有所帮助。