Android 构建脚本存储库:jcenter VS mavencentral

2024-01-26

上次我使用Android Studio时,它生成了.gradle文件与mavencentral()buildscript 存储库,而现在有jcenter().

谁能解释一下与此相关的问题。还有其他回购吗?我们什么时候应该切换它们?它们对项目、模块、库有什么影响? Android 开发者还有其他必需品吗?

谁负责维护这些存储库?


在 Bintray,我刚刚转发了博客一篇非常详细的博文 https://blog.bintray.com/2015/02/09/android-studio-migration-from-maven-central-to-jcenter/描述 Google 做出此更改的原因。以下是最重要的几点:

  • J中心是一个Bintray 中的 Java 存储库 https://bintray.com/bintray/jcenter,这是世界上最大的 Java 和 Android OSS 库、包和组件存储库。
  • JCenter 中的所有内容均通过 CDN 提供,并具有安全的 HTTPS 连接。回到迁移时 (Android Studio 0.8),中央 Maven 2 存储库仅支持 HTTP,不支持 HTTPS。参考:51.6.2。 Maven 中央存储库 https://gradle.org/docs/current/userguide/dependency_management.html#sec:repositories.
  • jcenter()是一个超集mavenCentral(),其中包含许多其他存储库和工件。
  • 在不同的场景和不同的国家,Bintray 比 Maven Central 更快(例如来自以色列)。在其他方面,情况非常接近。由于 Maven Central 和 Bintray 使用不同的 CDN,这些 CDN 会自适应地支持区域,因此这两种方式都可能会发生变化。
  • Bintray 具有与旧版 Maven Central 不同的包识别方法。这是一个重大而严重的安全问题。这很重要。 https://blog.bintray.com/2014/08/04/feel-secure-with-ssl-think-again/
  • 如果您确实需要将包发送到 Maven Central(用于支持遗留工具),您也可以从 Bintray 进行操作,单击按钮甚至自动 https://blog.bintray.com/2014/02/11/bintray-as-pain-free-gateway-to-maven-central/.

关于性能改进,一些 Android 开发者倡导者已经面临/注意到 Maven Central 的巨大索引问题。

用的话来说托诺比 https://plus.google.com/+TorNorbye/posts:

我使用全新的设置目录运行 AndroidStudio,因此它连接了 Maven Central 并下载了可用工件的索引。

然后我碰巧查看了我的目录的大小。

我的 ~/Library/Cache/AndroidStudioPreview 是 1.5G,其中 1.2G 被“Maven”子目录占用。

这是荒谬的。我们几乎根本不使用索引。它的主要用途是项目结构对话框中的依赖关系编辑器,但我们实际上不需要为其预先计算索引。 MavenCentral 有一个快速的在线 JSON 搜索,当有人搜索工件时我们可以按需使用。在https://android-review.googlesource.com/#/c/94843/ https://android-review.googlesource.com/#/c/94843/我们添加了一个 lint 检查来检查依赖项是否是最新的,并且对一些工件的搜索几乎是即时的。

简而言之,我们确实不需要缓存;我们不需要缓存。它可能有助于 .gradle 和 maven .pom 文件中的代码完成,但这不是一个超级重要的用例,当然也不是什么all用户应该必须牺牲1.5G的下载速度和磁盘空间才能有一天做的可能性。阅读更多内容:Maven 索引是huge! https://code.google.com/p/android/issues/detail?id=72061

另外,你可能会发现这个关于 Hacker News 的非常简短的讨论(1Q 和 1A) https://news.ycombinator.com/item?id=8099840有趣的。


I am with JFrog http://jfrog.com, the company behind bintray /questions/tagged/bintray and artifactory /questions/tagged/artifactory, see my profile https://stackoverflow.com/users/402053/jbaruch for details and links.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 构建脚本存储库:jcenter VS mavencentral 的相关文章

  • 在android API 23中获取用户的位置

    我可以编写获取用户位置的代码 并且在 API 更多细节 我手动启用设备的 GPS 第一次运行应用程序请求权限并且没有日志返回 在下次运行应用程序时 返回我准备好的 Toast 检查您的提供商 这是我写的代码 public class Mai
  • Android imageview 改变色调来模拟按钮点击

    我有一个图像视图 我在其中设置了从网址获取的位图 在 imageview 上 我设置了一个 onClickListener 来打开一个对话框 当按下图像视图时 我想以某种方式改变色调 使其更暗 以提供一种类似按钮点击的感觉 你有什么建议 h
  • 基于Java模式分割字符串

    您好 我有以下模式的日志文件 2014 03 06 03 21 45 432 ERROR mfs pool 3 thread 19 dispatcher StatusNotification Error processing notific
  • 如何获取 Android 应用程序的 Google Places API 密钥

    在过去的 48 小时里 我绞尽脑汁试图找到这个问题的答案 问这个问题的人 如何为 Google Places api 制作 API KEY https stackoverflow com questions 23128152 how can
  • APACHE POI 从 Java 中的 Excel 获取精确的字体颜色

    在 Excel 工作表中 如何使用 Java 中的 Apache POI 获取准确的字体颜色值 我试图通过使用来获取字体颜色 org apache poi ss usermodel Font f book getFontAt style g
  • 使用泛型进行选择排序

    我对整数进行了选择排序并且它正在工作 当我尝试修改程序以使用泛型时 编译器会抱怨 我不知道如何修复它 如果有人能提出一些建议和建设性意见 我将不胜感激 这是代码 public class SelelctionSort public stat
  • C3P0:生产中未返回的连接超时?

    参数unreturnedConnectionTimeout给定时间段后未返回的连接超时 我正在尝试决定是否应该在我的制作中使用它persistence xml 使用它的一大优点是连接池将能够从泄漏的连接中恢复 一个很大的缺点是泄漏的连接将很
  • Android facebook api,获取不同尺寸的头像

    我正在使用相对较新的 Facebook 图形 api 我正在获取使用该应用程序的朋友列表及其个人资料照片 我不知道如何修改我发送的参数 以便返回的图片很大 当前返回的默认值很小 我正在使用 newMyFriendsRequest 我发送的参
  • 如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

    我需要使 C 应用程序与 Java 应用程序兼容 Java 应用程序使用Cipher getInstance RSA ECB nopadding 初始化器使密码 ECB 和无填充 但是 在 C 中 您有 2 个填充选项 OAEP 填充或 P
  • Android minSdkVersion 与 Flutter(v2.8.1)

    我已经安装了 firebase 包 据我们所知minSdkVersion 19被推荐 所以 我想做这个过程 但是 我看到这一行包含在android app build gradle file minSdkVersion flutter mi
  • Android Studio gradle 构建时间太长

    My 安卓工作室项目过去构建速度更快 但现在需要很长时间才能构建 有什么想法可能导致延误吗 我努力了https stackoverflow com a 27171878 391401 https stackoverflow com a 27
  • Unity 上适用于 Android 的 vuforia 插件和 prime31 facebook 插件之间的冲突

    如今客户需要它 这真的很紧急 T T 我在 Unity 上的 Android 应用程序中同时安装了 vuforia 插件和 prime31 facebook 插件 难点在于androidmanifest xml文件 它们都充当 MAIN 和
  • 使用 Android 地图 v2 进行自由绘图

    我有一个地图应用程序 使用新的 v2 Google Maps API for Android 我想做的是允许用户在地图上沿着手指的路径画一条线 我知道我可能需要一个按钮来启用 禁用此功能 因为它显然需要禁用平移 缩放控件 一旦用户画了线 我
  • 即使提供了通知,也无法在前台服务中运行蓝牙扫描超过 10 - 15 秒

    即使应用程序关闭 我也使用服务来保留对 Android 手机的扫描 我使用广播接收器在被杀死时重新启动我的服务 它会重新启动扫描 并且只工作大约 15 秒 然后停止 当我单击 MainActivity 中的 button1 时 我启动了服务
  • 如何使用 Kafka 发送大消息(超过 15MB)?

    我发送字符串消息到Kafka V 0 8使用 Java Producer API 如果消息大小约为 15 MB 我会得到MessageSizeTooLargeException 我尝试过设置message max bytes到 40 MB
  • 使用 Spring Batch 将文件中的日期解析为 LocalDateTime

    我正在尝试使用 Spring Batch 读取包含日期的 CSV 文件 但在将日期解析为LocalDateTime Object 字段 日期 上的对象 目标 中的字段错误 拒绝值 2017 07 20 04 15 25 0 代码 typeM
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System
  • selenium 没有找到合适的方法,直到(ExpectedCondition)

    这是有线的问题 我导入的项目运行 100 几个月前 今天我已将其与依赖项一起导入 但存在问题WebDriverWait 这是我的代码 WebDriverWait driverWait new WebDriverWait driver 100
  • 带有客户端证书的android webview

    我尝试了几天使用嵌入在应用程序中的客户端证书的Web视图 但在我看来 android sdk没有提供任何方法来做到这一点 是否有回调来拦截服务器发送的质询 有没有办法将 webview 与客户端证书一起使用并发出 https 请求 因为我也
  • 是什么让热部署成为“难题”?

    在工作中 我们经常遇到这样的问题 永久代内存不足 http www jroller com agileanswers entry preventing java s java lang例外 团队负责人认为这是 JVM 中的一个错误 与代码的

随机推荐

  • 如何在 PHP 中删除字符串的一部分? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何删除字符串的一部分 示例字符串 REGISTER 11223344 here 我怎样才能删除 11223344 从上面的示例字符串 如
  • 使用 Retrofit 和 Realm 纠正 RxJava 中的流程

    我正在结合 RxJava 和 Retrofit 来实现网络 API 并使用 Realm 作为数据库 我几乎可以正常工作 但我想知道这是否是正确的方法和事件流程 所以 这里是RetrofitApiManager public class Re
  • (xs : Vect n elem) -> Vect (n * 2) elem

    这本书使用 Idris 进行类型驱动开发 https www manning com books type driven development with idris提出这个练习 定义一个适合签名的可能方法 two xs Vect n el
  • 如何在没有嵌入式 tomcat 的情况下启动 Spring Boot 应用程序?

    我有一个使用 jhipster 生成的 Spring Boot 应用程序 它工作正常 但是 我还需要为一些后台批处理作业创建第二个应用程序 并且该应用程序使用第一个应用程序的大部分 Spring 服务 我所做的是创建第二个主类 它启动一个
  • 在 Visual Studio 中使用 Catch2 进行单元测试的最佳实践

    我是 C 单元测试的新手 想获得一些关于这方面的建议 我使用 Visual Studio 2019 进行开发 选择 Catch2 作为我的测试库 我还安装了 Catch2 的测试适配器 我在 GitHub 上阅读了 Catch2 和 Cat
  • 在 Cordova ios 4.0.0+ 中使用 Stripe Checkout

    我一直在尝试让 Stripe checkout 与 Cordova iOs 4 2 0 一起使用 但没有成功 适用的最后一个 Cordova iOs 版本是 3 9 2 为了测试 我制作了一个空的 hello world cordova 应
  • Google API:“invalid_grant”,但代码没有改变

    我在 Google API 身份验证方面遇到以下问题 PHP 致命错误 未捕获异常 Google Auth Exception 消息 刷新 OAuth2 令牌时出错 消息 错误 无效授权 在 home bot bot vendor goog
  • 混合 PCM 音频样本

    我有一个关于混合多个 PCM 样本的简单问题 我读到混合多个音频 PCM 样本的最佳方法是取每帧样本的平均值 因此 如果我在除以 5 之前将 5 个 16 位样本相加 显然很有可能它的值会大于 16 位 Short 所能容纳的值 因此 当将
  • 路由在 kubernetes 中无法使用 calico 工作

    I have kubernetes v1 6 0 由 kubeadm v1 6 1 设置 官方设置的 calicoyaml http docs projectcalico org v2 1 getting started kubernete
  • 如何在没有“未经检查”警告的情况下转换为(已知)泛型类型?

    我有这两个接口 public interface Event default void dispatch EventBus getInstance dispatch this public interface EventListener
  • NERDTree 自动加载特定目录

    我在 Windows 中使用 gvim 默认情况下 nerdtree 默认加载 C 驱动器 我想将其更改为 E 驱动器 如何实现这一点 每当我尝试使用 NERDTree 命令启动 NERDTree 时 都会收到此错误E492 Not an
  • 在内存中存储张量流模型

    我正在编写的程序涉及在运行时在模型之间进行切换 我当前正在使用 Saver 从磁盘保存 加载模型 如下所示 https www tensorflow org api docs python state ops saving and rest
  • VS Xamarin无法生成IPA文件

    我曾经将配置设置为 Release iPhone Remote Device 但是远程设备不再显示 只剩下本地设备 有谁知道有相关的设置吗 多谢 更新到 Visual Studio 16 11 3 远程设备 选项已恢复 看发行说明 http
  • 谷歌地图 API 风格的地图与卫星水

    我正在使用谷歌地图 API V3 创建一个样式化的地图 其中我使用自定义颜色 我想知道是否可以在使用陆地上的自定义样式的同时使用水域的卫星图像 IE 我希望水是卫星图像 而土地是自定义的纯色 现在我可以为土地和水提供自定义颜色 但我想知道是
  • 如何限制子类修改抽象类中方法的范围?

    如何限制抽象类的实现类将方法的范围从 protected 修改为 public 例如 假设我有一个抽象类 package com rao test public abstract class AbstractTEClass protecte
  • RISC-V 中的旋转位

    嘿 我对 RISC V 还算陌生 我的练习题之一是 将 0x0000000000000123 的值右移 4 位 预期结果为 0x3000000000000012 即所有十六进制数字向右移动一位 而最右边的一位移动到前面 到目前为止 我了解了
  • 可以在 C++ 中缓存虚函数查找吗?

    假设我在抽象基类指针 mypointer gt foo 上有一个虚拟函数调用 foo 当我的应用程序启动时 根据文件的内容 它选择实例化特定的具体类并将 mypointer 分配给该实例 在应用程序的剩余生命周期中 mypointer 将a
  • 如何调用 rake 目标两次

    我通过修改 csproj 文件以包含额外的编译符号 从 sln 生成两组不同的 DLL 文件 我正在使用 rake 构建解决方案 并执行以下构建任务 desc Builds the DPSF sln in Release mode msbu
  • 正则表达式不匹配连字符后的数字

    我有以下内容 1 5 5 tablespoon cream 1 cup heavy cream teaspoon cream 1 tablespoon cream s d 我试图找出原因 不匹配 我在非捕获组中有一个转义的连字符 我尝试过的
  • Android 构建脚本存储库:jcenter VS mavencentral

    上次我使用Android Studio时 它生成了 gradle文件与mavencentral buildscript 存储库 而现在有jcenter 谁能解释一下与此相关的问题 还有其他回购吗 我们什么时候应该切换它们 它们对项目 模块