当前位置: 首页 > 知识库问答 >
问题:

JCenter是否永久关闭(10月31日)?

傅阿苏
2023-03-14
   > Failed to list versions for com.google.http-client:google-http-client-android.
         > Unable to load Maven meta-data from https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml.
            > Could not HEAD 'https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml'.
               > Read timed out

我正在尝试构建一个Android应用程序,但我得到了上面的错误。当我连接到“https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml”时,出现ngin x 403错误。JCenter停机了吗?我该怎么办?

共有3个答案

怀德馨
2023-03-14

是的,你并不孤单。Jcenter今天似乎不景气。

我的解决方案是将所有jCenterroot/android/build.gradlemavenCentral

另外,不要忘记库node_module/*error libaray*/android/build.gradle

长孙弘盛
2023-03-14

经过几个小时的头部爆炸,问题终于解决了。在android/build.gradle中,在all项目的顶部添加以下内容-

它将在配置阶段从所有依赖项中删除jcenter(),并将其替换为mavenCentral()

它应该是这样的:

    allprojects {
      repositories {
          all { ArtifactRepository repo ->
              println repo.url.toString()
              if (repo.url.toString().startsWith("https://jcenter.bintray.com/")) {
                  project.logger.warn "Repository ${repo.url} removed."
                  remove repo
                  mavenCentral()
              }
          }
          gradlePluginPortal() // add this if you get further errors 
          ...other repos
      }
    }

希望有帮助:)

燕翼
2023-03-14

是的。< code>jcenter现在已关闭。< code>jcenter不久前已经过时,仍然以只读模式可用。到目前为止,还没有更新的时候,它将再次可用。根据你的情况,你有快或不那么快的选择。

更新:此处报告了新事件。看看这个。

正如@Adrian在评论中提到的,您可以在Gradle的事件状态页面上查看当前事件的状态。更新:状态显示“已解决”,但我仍然无法完成项目。所以我想知道状态页面是否只显示jCentral对Gradle插件门户的影响,而不是一般的jCentral的状态。

到目前为止,我还找不到任何地方报告bintray的状态。如果你找到了,请在下面评论。

切换gradle的离线模式,如下所示。这将适用于本地机器,但不适用于CI。

远离已弃用的服务总是个好主意。大多数活动库现在托管在其他流行的存储库上,例如google reso、Maven Central或gradle插件存储库。

要在您的项目中添加这些存储库,请在repositories块中添加以下内容(您可能已经有了这些内容)。秩序很重要。确保将它们放在< code>jcenter()之前,这告诉gradle在尝试从< code>jcenter()提取之前查看其他回购。

提示:对< code>jcenter()进行全局搜索,并确保包含< code>jcenter()的每个存储库块都有这些其他存储库。

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

做gradle同步和清理构建,看看这是否有效。

别担心。这很常见。上述解决方案在某些情况下无法单独工作:

> < li>

当从< code>jcenter()移动到其他repo(如< code>mavenCentral())时,作者决定更新版本号。这仅仅意味着您需要更新该依赖项的版本,以便从其他repo中获取它。查找在失败的构建日志中显示为不可用的库。找到它的github或者开发文档查看最新版本。Gradle Sync干净构建。

我们刚刚添加的存储库是受欢迎的存储库,但不是唯一的存储库。当库的作者必须从jcenter切换到其他地方时,他们没有选择其中一个。在这种情况下,请查看github页面或开发者文档。通常,作者会在这些页面上放置所需的存储库。如果您发现项目中不存在存储库,请添加它。Gradle Sync干净构建。

  • 注意:一些作者选择像jitpack.io这样的存储库选项很大程度上是因为它比其他人更快更容易。但是你应该意识到对此的担忧。gradle的Melix总结了jitpack.io.因为潜在的安全问题,我建议在添加之前咨询团队和安全专家。

好了,现在是时候不用担心了。很有可能你正在使用某个已废弃或不再维护的库。找到库的github页面,看看作者是否在readme中声明它已被弃用或不再保留。您甚至可以检查它最后一次提交的时间。如果是不久前,这意味着它不再被维护,并且作者不关心将库从< code>jcenter()移动到任何其他repo。

  • 转到存储库的 GitHub 问题。一定有人发布了有关从jcenter迁移计划的问题。如果幸运的话,有人甚至可能已经创建了 fork 并将该 fork 托管在其他地方。例如,我在其中一个项目中使用了spanny,而作者没有移动它。古斯塔沃罗斯非常关心分叉和移动。
  • 没有人分叉和移动?那么你有两个选择。
    1. 寻找对您执行相同操作的备用活动库。当然,这很耗时,但从弃用的资源中移开也是一个好主意。
    2. 如果您没有时间集成新库或不存在其他库,那么请成为英雄并分叉 GitHub 项目并移动。

但是嘿,我不记得在我的代码库中提出了问题?这意味着,它是一个传递依赖项(您的直接依赖项的依赖项)。再次检查,您的直接依赖项的最新版本,希望新版本已经修复了这个问题。

如何检查直接依赖和传递依赖关系?

  • 失败的构建日志有答案

希望在这一点上,您已经完成了构建。如果没有,那么希望jcenter很快回来,并开始计划远离它。

 类似资料:
  • 主持人注意:这似乎是服务中断。堆栈溢出无法为此问题提供支持 我正在尝试构建一个Android应用程序,但我得到了上面的错误。当我连接到“https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml”时,出现ngin x 403错误。JCenter停机了吗?我该怎么办?

  • 在Linux上,如何将目录添加到$PATH中,使其在不同会话中保持持久性? 我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我尝试过: 这是有效的,但是每次我退出终端并启动一个新的终端实例时,这个路径都会丢失,我需要再次运行导出命令。 我怎么做才能永久设置?

  • 5xx永久性否定 永久性否定的完成答复,该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。 500语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。 501在参数中有语法错误。 502未执行命令。 503错误的命令序列。 504未执行该参数的命令。 530未登录。 532存储文件需要帐户。 550未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。 55

  • 当试图建立我的项目,我得到以下错误: 在我的build.gradle存储库中,我没有jCenter,所以我得到的这个错误来自仍然指向jCenter的依赖项。 Gradle离线模式不是我期望的解决方案。 我知道jCenter已经崩溃了,我们都应该搬到mavenCentral(我已经做到了) 有解决办法吗?

  • 问题内容: 我在aws上部署了两个node.js应用程序,这两个应用程序位于如下所示的路径中 分别 在后台运行node.js应用程序,我曾经永远启动两个应用程序,就像 因此,通过在后台进程中运行两个node.js应用程序,永远可以很好地工作。但是,当我尝试使用这样的永久命令停止一个进程时。 出乎意料的是,两个node.js进程都被这样的信息关闭 我认为这是因为两个node.js进程具有相同的名称-

  • 尝试构建项目时,我遇到以下错误: 以我的身材。gradle存储库我没有jCenter,所以我得到的这个错误来自仍然指向jCenter的依赖项 Gradle离线模式不是我期望的解决方案 我知道jCenter倒闭了,我们都应该搬到mavenCentral(我已经做到了) 任何变通方法?