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

Sky*_*ker 13 gradle maven android-gradle-plugin

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

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

ii)我应该使用哪一个?

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

Sky*_*ker 25

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

使用URL:

repositories {
    maven { url("https://plugins.gradle.org/m2/") }
}
Run Code Online (Sandbox Code Playgroud)

通过使用本地文件系统:

repositories {
    maven { url '../maven-repo' }
}
Run Code Online (Sandbox Code Playgroud)

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

1. mavenCentral():

mavenCentral()别名表示从中央Maven 2存储库中获取依赖项.

repositories {
    mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)

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

2. jcenter():

jcenter()别名表示从Bintray的JCenter Maven存储库中获取依赖项

3. mavenLocal():

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

资源链接:

  1. Gradle:依赖管理

  2. Maven RepositoryHandler


Jcenter与mavenCentral

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

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

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

  • Jcenter是世界上最大的Java存储库
  • Jcenter通过CDN服务,使用https协议,高度安全,使用http协议的 Android Studio 0.8版本mavenCentral()
  • Jcenter是mavenCentra l 的超集,包括许多额外的罐子
  • Jcenter性能优于mavenCentral
  • mavenCentral将自动下载许多与IDE相关的索引,并且这些索引的使用频率较低,这些索引不是必需的.

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

  • 我们的人进来了,让我们感觉“jCenter”是终极的。然后告诉我们它即将结束,并建议我们继续使用“mavenCentral”。哈哈。 (13认同)
  • JFrog 的 Bintray Jcenter maven 存储库...我很长一段时间以来听到的最糟糕/令人困惑的名字... (5认同)
  • MavenCentral 为工件不会改变提供了更多保证。Bintray 允许维护人员覆盖现有工件,这很方便,但最终可能被恶意用户利用。 (3认同)
  • 现在jcenter预定关闭时间回到mavencentral (2认同)

V.Y*_*.Y. 5

根据Android 开发者页面 -

JCenter 弃用和服务终止

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

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