TLDR;
是.现在jcenter
美元下跌了.jcenter
是不久前日落的时候,在只读模式下仍然可用.到目前为止,还没有关于它何时再次可用的更新.根据您的情况,您可以 Select 快速或not so-quick个选项.
我在哪里可以查看状态?
更新:
这里报告了新的事件.Check this out.
正如@禤浩焯在 comments 中提到的,你可以在Gradle's incident status page上查看当前事件的状态.更新:状态显示为"已解决",但我仍然无法完成该项目.所以我想知道是不是状态页只显示了jcenter
对Gradle插件门户的影响,而不是一般的jcenter
的状态.
到目前为止,我找不到任何报告收件箱状态的地方.如果找到,请在下面发表 comments .
我现在能做什么?
临时解决方案:
切换Gradle的离线模式,如下所示.这将适用于本地计算机,但不适用于CI.
强大的解决方案:
远离过时的服务总是一个好主意.Most个活跃的图书馆现在托管在其他流行的资源库上,比如Google repo、Maven Central或Gradle plugin repo.
要在您的项目中添加这些存储库,请在Repositories块中添加以下内容(您可能已经有这些存储库).秩序很重要.一定要把它们放在jcenter()
之前,这会告诉Gradle在try 从jcenter()
中拉出之前先看看其他的repos.
提示:对jcenter()
进行全局搜索,并确保包含jcenter()
的每个存储库块都有这些其他repos.
repositories {
...
google()
mavenCentral()
gradlePluginPortal()
jcenter()
...
}
做梯度同步和清理构建,看看是否有效.
不管用吗?
(目前)别担心.这很常见.在某些情况下,上述解决方案不能单独使用:
当从jcenter()
迁移到其他repo(如mavenCentral()
)时,作者决定更新版本号.这仅仅意味着您需要更新该依赖项的版本,以从其他repo中获取它.查找在失败的生成日志(log)中显示为不可用的库.找到GitHub或开发文档来判断最新版本.Gradle Sync+Clean Build.
我们刚才添加的存储库很受欢迎,但不是唯一的.当图书馆的作者不得不从jcenter
个换到其他地方时,他们没有 Select 其中一个.在这种情况下,请查看GitHub页面或开发人员文档.通常,作者会在这些页面上放置所需的存储库.如果您发现项目中不存在该存储库,请添加它.Gradle Sync+Clean Build.
- Beware:一些作者 Select 像
jitpack.io
这样的存储库选项,很大程度上是因为它比其他选项更快、更容易.但你应该意识到这一点的担忧.来自Gradle summarizes the concerns的Melix,带有jitpack.io.由于潜在的安全问题,我建议在添加之前咨询团队和安全专家.
好了,现在是时候少操心了.您很可能正在使用某个已弃用或不再维护的库.找到库的GitHub页面,并查看作者是否声明它已弃用或不再在自述文件中维护.您甚至可以判断它上次提交的时间.如果是在一段时间之前,这意味着它不再维护,作者不再关心将库从jcenter()
移到任何其他repo.
- 转到回购的GitHub问题.一定有人发布了关于从
jcenter
迁移的计划的问题.如果你运气好,有人甚至可能已经创建了fork ,并在其他地方托管了那个fork .例如,我在其中一个项目中使用了spanny
,但作者没有移动它.GustavoRoss cared美元足够fork 和移动.
- 没人用fork 挪动吗?那么你有两个 Select .
- 寻找为您执行相同操作的备用活动库.当然,这很耗时,但还是远离过时的资源是个好主意.
- 如果您没有时间集成新的库,或者其他库不存在,那么做个英雄,做GitHub项目的Forking ,然后搬家.
但是,嘿,我不记得在我的代码库中有问题的库吗?这意味着,它是传递性依赖(直接依赖的依赖).再次判断,您的直接依赖的最新版本,希望新版本已经解决了这个问题.
How to check direct and transitive dependency?个
希望在这一点上,您已经得到了构建工作.如果不是,那么希望jcenter
个人很快回来,并开始计划摆脱它.