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

mavenCentral()、jCenter()和mavenLocal()之间的区别?,maven,gradle,android-gradle-plugin,Maven,Gradle,Android Gradle Plugin,实际上,我正在研究build.gradle文件。在某些情况下,我发现有时他们在存储库部分使用mavenCentral()、jCenter()和mavenLocal()。有时他们也使用URL。所以我的脑海里出现了一些问题 i) mavenCentral()、jCenter()和mavenLocal()之间的区别 ii)我最应该使用哪一种 iii)是否存在任何与绩效相关的问题 实际上,这三个都是Maven存储库。我们通过使用maven的URL地址或其在本地文件系统中的位置来使用这些maven存储库进

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

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

ii)我最应该使用哪一种

iii)是否存在任何与绩效相关的问题


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

使用URL:

repositories {
    maven { url("https://plugins.gradle.org/m2/") }
}
repositories {
    maven { url '../maven-repo' }
}
repositories {
    mavenLocal()
    
//  jcenter()       // <- remove it
    mavenCentral()  // <- add it
    
    maven { url "https://plugins.gradle.org/m2/" }
    maven { url "https://repo.spring.io/plugins-release/" }
}
使用本地文件系统:

repositories {
    maven { url("https://plugins.gradle.org/m2/") }
}
repositories {
    maven { url '../maven-repo' }
}
repositories {
    mavenLocal()
    
//  jcenter()       // <- remove it
    mavenCentral()  // <- add it
    
    maven { url "https://plugins.gradle.org/m2/" }
    maven { url "https://repo.spring.io/plugins-release/" }
}
Gradle有三个“别名”,当我们将Maven存储库添加到构建中时,可以使用它们。这些别名是:

  • mavenCentral():

  • mavenCentral()别名意味着依赖项是从数据库获取的

    用于访问此存储库的URL为。存储库的名称是MavenRepo

  • jcenter():

  • jcenter()别名意味着依赖项是从

  • mavenLocal():

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

    资源链接:

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

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

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

    • Jcenter是世界上最大的Java存储库
    • Jcenter通过CDN服务,使用https协议,高度 使用http 协议
    • Jcenter是mavenCentra的超集,包括许多额外的 罐子
    • Jcenter性能优于mavenCentral
    • mavenCentral将自动下载许多与IDE相关的索引, 而且这些都是不经常使用,这是不需要的
    资源链接:


    最近更新:

    更新:24-02-2021,共:

    公告链接:

    Maven中心链接:

    解决方法:

    repositories {
        maven { url("https://plugins.gradle.org/m2/") }
    }
    
    repositories {
        maven { url '../maven-repo' }
    }
    
    repositories {
        mavenLocal()
        
    //  jcenter()       // <- remove it
        mavenCentral()  // <- add it
        
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "https://repo.spring.io/plugins-release/" }
    }
    
    存储库{
    mavenLocal()
    //jcenter()//

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

    为了澄清这一点,JCenter存储库将在2022年2月1日之前提供12个月的软件包。只有JCenter REST API和UI将在2021年5月1日被屏蔽

    按第页-

    JCenter弃用和服务结束

    JFrog是一家维护许多Android项目使用的JCenter工件库的公司,最近宣布了JCenter的弃用和即将退役。根据该公司的消息,JCenter将允许下载现有工件,直到2022年2月1日


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

    我仍然没有得到一件事:JCenter和MavenCentral CDN都只能付费使用?JFrog的Bintray JCenter maven repository…这是我很久以来听到的最糟糕/令人困惑的名字…MavenCentral提供了更多的保证,即tifacts不会改变。Bintray允许维护人员覆盖现有工件,这很方便,但最终会被恶意用户利用。现在,jcenter计划在返回maven central之前关闭