【发布时间】:2017-12-07 15:09:30
【问题描述】:
我们正在安装 android sdk 以及在 docker 容器中构建我们的应用所需的所有包。
但是有一个关于版本的细节一直困扰着我。
查看下面所有可用的 sdk 管理器包(列表已缩短)
$ sdkmanager --channel=3 --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
...
build-tools;25.0.1 | 25.0.1 | Android SDK Build-Tools 25.0.1 | build-tools/25.0.1/
build-tools;25.0.2 | 25.0.2 | Android SDK Build-Tools 25.0.2 | build-tools/25.0.2/
build-tools;25.0.3 | 25.0.3 | Android SDK Build-Tools 25.0.3 | build-tools/25.0.3/
build-tools;26.0.0 | 26.0.0 | Android SDK Build-Tools 26 | build-tools/26.0.0/
...
platform-tools | 26.0.0 | Android SDK Platform-Tools | platform-tools/
platforms;android-17 | 3 | Android SDK Platform 17, rev 3 | platforms/android-17/
platforms;android-18 | 3 | Android SDK Platform 18, rev 3 | platforms/android-18/
platforms;android-19 | 4 | Android SDK Platform 19, rev 4 | platforms/android-19/
platforms;android-20 | 2 | Android SDK Platform 20, rev 2 | platforms/android-20/
platforms;android-21 | 2 | Android SDK Platform 21, rev 2 | platforms/android-21/
platforms;android-22 | 2 | Android SDK Platform 22, rev 2 | platforms/android-22/
platforms;android-23 | 3 | Android SDK Platform 23, rev 3 | platforms/android-23/
platforms;android-24 | 2 | Android SDK Platform 24, rev 2 | platforms/android-24/
platforms;android-25 | 3 | Android SDK Platform 25 | platforms/android-25/
platforms;android-26 | 1 | Android SDK Platform 26 | platforms/android-26/
一些包包含Path 上的版本,这很明显两个不同的映像版本将具有完全相同的包。如果您想更新它,则必须将安装命令从 build-tools;25.0.3 更改为 build-tools;26.0.0。
但是,有些软件包没有Path 中的版本。
假设我们有一个包含 platforms;android-25 的构建,当前的 docker 镜像可能会安装 Version 3(目前最新),但是下次我们构建镜像时可能会有一个 Version 4 可用,这意味着具有相同的依赖关系名称我们最终会得到不同的安装包。我们不会知道这一点,它可能会导致构建问题,因为它们不是确定性的。
虽然这是一个基本示例,但其他依赖项(例如 extras;android;m2repository 或 extras;google;m2repository)会使事情变得更加复杂,其中修订可能意味着包含新版本的软件包(例如 firebase)。
换句话说,有没有办法指定我们要安装的包的Version,所以我们最终总是安装相同的依赖项?
谢谢
【问题讨论】:
-
任何对包版本有严格要求的人都应该运行他们自己的本地仓库。如果您不想托管所有二进制包文件 - 您可以使用您需要的包版本托管您自己的自定义
repository.xml,并且仍然使用 google 的 repo 来获取包文件。
标签: android android-sdk-tools android-sdk-manager