“JCenter已结束生命”androidlint警告,替代品是什么?

Android Studio Arctic Fox Canary 8 开始发出警告 JCenter is at end of life

但是我不能只是删除jcenter()声明,因为它承载了很多 android 工件,它会导致Could not resolve all artifacts错误。解决此警告的正确方法是什么?

回答

有一个文档部分描述了这个问题:JCenter deprecation and end of service。您可以通过展开检查说明 ( Ctrl+F1)来找到该链接。该文件指出:

JFrog 是一家维护许多 Android 项目使用的 JCenter 工件存储库的公司,最近宣布弃用 JCenter 并即将停用。根据公告,JCenter 将允许在 2022 年 2 月 1 日前下载现有工件。

在 JCenter 上发布工件的开发人员应该开始将他们的包迁移到新主机,例如Maven Central。

在不久的将来,我们将在此页面上提供有关从 JCenter 迁移 Android 项目的更多信息。

扩展检查说明(以及上面的文档)建议替换jcenter()mavenCentral(). 实际上JCenterMaven Central的超集,但是在您的项目使用的所有JCenter工件都将移动到Maven Central之前,这种替换不会解决问题。

我认为最佳解决方案是等到您使用的库被移出jcenter()并尝试将其替换为mavenCentral(). 如果仍然缺少某些工件,请查看文档,它们可能被移到另一个存储库中,您也应该将其添加到repositories列表中。

repositories {
    google()

//  jcenter()       // <- removed
    mavenCentral()  // <- added
}

如果您是库作者,则应该迁移到另一个存储库,可能是Maven Central。请注意,根据 JCenter弃用公告,仅在 2021 年 3 月 31 日之前允许新提交。

一些相关资源:

  • jCenter 和 Bintray 正在关闭。怎么办?
  • 从 JCenter 迁移

回答

我认为要坚持不间断的迁移,而不是删除jcenter(),您可以保留两者,并且只更改脚本本身的顺序。这样,当开发人员正在迁移他们的工件时,jcenter()将始终是一个后备mavenCentral()

repositories {
    google()
    mavenCentral()  
    jcenter()       
}

  • Starting February 1, 2022 `jcenter` will [work as a read-only repository indefinitely](https://blog.gradle.org/jcenter-shutdown), meaning developers won't be able to push new updates, your app will work unless you add newer versions of a library that are not available on `jcenter`

以上是“JCenter已结束生命”androidlint警告,替代品是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>