不赞成使用JCenter;对Gradle和Android的影响

vfh0ocws  于 2022-11-03  发布在  Android
关注(0)|答案(9)|浏览(195)

我是否应该担心 JCenter 被弃用?
为什么要将我的库从 JCenter 迁移到其他Maven资源库?
我可以继续在Gradle构建脚本中使用jcenter()吗?

c0vxltue

c0vxltue1#

替换

jcenter()

与此:

mavenCentral()
8yparm6h

8yparm6h2#

请查看新答案。

总结:2022年2月1日之后,jcenter()将不再工作。

根据this Gradle blog post

  • Gradle 7.0* 将弃用jcenter()来解析依赖项。

您仍然可以使用 JCenter 作为存储库,但Gradle会发出警告。
jcenter()方法将在下一个主要版本中删除。
Gradle与 JCenterMaven Central 没有内在联系,因此您可以随时切换到您选择的任何其他存储库。
而根据Android Developers
JFrog是一家维护许多Android项目所使用的 JCenter 构件库的公司,最近宣布了 JCenter 的弃用和即将退役。
根据the announcementJCenter 在2022年2月1日之前将允许下载现有工件。
JCenter 上发布工件的开发人员应开始将包迁移到新主机,如 Maven Central
因此,只需确保作者在其他存储库中提供了他们的库,然后更新您的构建脚本以支持从这些存储库下载。
例如,在Gradle中,使用mavenCentral()函数可以从Maven Central存储库获取依赖项。

vom3gejh

vom3gejh3#

JFrog网站上提到的here的最新更新如下:
更新日期:2021年4月27日我们听取了社区的意见,并将无限期地将JCenter作为一个只读存储库。我们的客户和社区可以继续依赖JCenter作为Java包的可靠镜像。

mfuanj7w

mfuanj7w4#

jcenter()替换为:

gradlePluginPortal()
mavenCentral()
bnl4lu3b

bnl4lu3b5#

你必须改变

jcenter()

mavenCentral()

此外,您必须设置一个或多个存储库URL:

repositories {
    mavenCentral()
    maven {
        url = "https://repo1.maven.org/maven2/"
    }
    maven {
        url "https://repo.spring.io/release"
    }
    maven {
        url "https://repository.jboss.org/maven2"
    }
    maven {
        url 'https://repo.jenkins-ci.org/public/'
    }
}
soat7uwm

soat7uwm6#

实际上,开发人员应该将他们的库移植到Maven或Google。在这种情况下,可以从Gradle中删除jCenter()。
当不再维护旧库或开发人员退休时,就会出现问题。
只有两种可能性:
a)例如在Maven中搜索类似的库。
B)从GitHub下载相应的源代码,并从中创建自己的本地库。
截至2022年2月1日,JCenter已明确关闭。

mkshixfv

mkshixfv7#

在我的情况下,我已经按照以下步骤来完成它:
1.将mavenCentral()置于jcenter()之前
1.使用Android Studio升级助手升级gradle(在我的情况下升级到7. 0. 3)
1.通过插件安装NDK(并排)(Android Studio)
1.清理并重建项目

apeeds0o

apeeds0o8#

我尝试了所有的方法,但是没有任何效果,然后手动添加了一个新的Maven存储库,现在它可以工作了。

repositories {
 // ...
 maven { url 'https://repo.gradle.org/gradle/libs-releases/' }
}
uidvcgyl

uidvcgyl9#

现在什么都不管用了。我们暂时可以使用aliyun.com。
在顶层build.gradle中这样使用它

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/apache-snapshots' }
    }
    dependencies {
      ***
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/apache-snapshots' }
    }
}

相关问题