关于JCenter废弃这件事情,相信许多朋友早就已经知道了。我在几个月前也专门写过一篇文章分析JCenter废弃事件的前前后后,感兴趣的朋友可以去阅读下这篇文章 浅谈JCenter即将被停止服务的事件 。
在上面这篇文章当中提到了几个比较关键的点:
1. 自2021年3月31日之后,JCenter就不再接受任何新库的提交。
2. 自2022年2月1日之后,JCenter将停止提供库的下载服务。
3. Google会在其Android开发者官网发布如何将开源库从JCenter迁出的方案。
当时整体的计划是这个样子的,然后几个月时间过去了,真是不得不说计划永远赶不上变化。
首先,Google修改了Android开发者官网的声明,没有再提到会给出迁出方案。只是告知开源库的发布者,以后发布库建议都发布到MavenCentral上。并告知开源库的使用者,你得自己去找这些库具体在哪里。
Google的这波操作可真是把锅甩的干干净净,JCenter废弃的事情与“我”再无关系,那是第三方开发者与JCenter之间的事情。
当时我看到Google修改声明之后心想,那这老库的迁移怎么办啊,Google是完全不管了。
不过再仔细一看,我才发现,原来JCenter也改了声明。在JCenter的最新声明中,2022年2月1日之后停止下载服务的那一条被删除了。也就是说,虽然JCenter不再允许开发者向其提交新的库,但是已经上传的老库会继续提供下载服务,这样也就不需要对它们做迁移了。
不知道为什么JCenter会改变态度做出这种善事,我猜测难不成是Google跟他们私下里进行了什么协商?不过不管怎么说,这对于开源库的开发者来说都是一件好事情,意味着老库的问题我们不需要再考虑了。
现在的问题就是,以后的新库怎么办?
/ 为什么要使用MavenCentral /
Google已经给出了其官方态度,建议开发者以后发布库都发布到MavenCentral上。
官方的态度其实是很重要的,因为以前JCenter也是这样被Google扶正的(结果Google被坑惨了),不然JCenter也无法在Android领域产生这么大的影响力。
如果你现在用最新版的Android Studio来创建一个新的项目,你会发现build.gradle文件中仓库的声明变成了这样:
allprojects {
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
}
}
可以看到,mavenCentral()仓库成了创建项目时的默认仓库,而jcenter()仓库被标为了废弃。
许多国内的开发者可能会觉得MavenCentral太麻烦了,远不如JitPack用起来简单。
然而JitPack的问题就是并没有被Google官方推荐,你如果将库发布到JitPack上,开发者想要使用你的库,还得要额外引入一下JitPack的仓库才行,这无疑就增加了使用成本。
因此,即使是麻烦,我仍然建议广大开发者们要将自己的开源库发布到MavenCentral上。
那么接下来,我们就看看如何实现。
/ 准备域名 /
相比于JCenter,MavenCentral的发布标准要远远高得多。不光是操作更麻烦的问题