mavenCentral(),jCenter()和mavenLocal()之间的区别?

时间:2018-06-06 17:39:35

标签: maven gradle android-gradle

实际上,我正在研究build.gradle档案。在某些情况下,我得知有时他们在存储库部分中使用mavenCentral()jCenter()mavenLocal()。有时他们也使用URL。所以在我脑海中出现了一些问题?

  

i)mavenCentral(),jCenter()和mavenLocal()之间的区别?

     

ii)我应该使用哪一个?

     

iii)是否存在任何与性能相关的问题?

3 个答案:

答案 0 :(得分:15)

实际上,所有3个都是Maven存储库。我们通过使用URL地址或其在本地文件系统中的位置来使用这些maven存储库来构建。

使用网址

repositories {
    maven { url("https://plugins.gradle.org/m2/") }
}

使用本地文件系统:

repositories {
    maven { url '../maven-repo' }
}

Gradle有三个“别名”,我们可以在将Maven存储库添加到构建时使用。这些别名是:

1。 mavenCentral():

mavenCentral()别名表示从central Maven 2 repository获取依赖项。

repositories {
    mavenCentral()
}

用于访问此存储库的URL是https://repo.maven.apache.org/maven2/。存储库的名称是MavenRepo。

2。 jcenter():

jcenter()别名表示从Bintray’s JCenter Maven repository

获取依赖项

3。 mavenLocal():

mavenLocal()别名表示从本地Maven存储库中获取依赖项。

资源链接:

  1. Gradle: Dependency Management

  2. Maven RepositoryHandler

  3. Jcenter vs. mavenCentral

    jcenter()和mavenCentral()是Android Studio中Gradle插件的存储库

    早期版本的Android Studio使用了mavenCentral(),过了一段时间后,它切换到了jcenter。

    这是因为jcenter()在性能和内存占用方面优于mavenCentral():

    • Jcenter是世界上最大的Java存储库
    • 通过CDN服务Jcenter,高度使用 https协议 安全,Android Studio 0.8版本mavenCentral()使用 http 协议
    • Jcenter是mavenCentra l的超集,包括许多其他内容 罐
    • Jcenter性能优于mavenCentral
    • mavenCentral会自动下载许多与IDE相关的索引, 并且这些不经常使用,这些不是必需的。

    资源链接: https://www.jianshu.com/p/bce437eeb3d3

答案 1 :(得分:4)

根据 Android Developer 页 -

JCenter 弃用和服务终止

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

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

答案 2 :(得分:2)

https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

<块引用>

更新:为了在此次迁移中更好地支持社区,JFrog 已将 JCenter 新包版本提交截止日期延长至 2021 年 3 月 31 日。

澄清一下,JCenter 存储库将继续提供包服务 12 个月直到 2022 年 2 月 1 日。只有 JCenter REST API 和 UI 将于 2021 年 5 月 1 日停用。