【问题标题】:Using gradle to download apk from repository使用 gradle 从存储库下载 apk
【发布时间】:2016-08-30 19:14:34
【问题描述】:

我正在为一个 android 项目设置 CI 构建系统,但在使用 gradle 从构建中下载工件时遇到问题。

在第一步中,我使用 gradle 构建一个 .apk,然后将其作为工件推送到 Nexus 存储库。这成功了,我可以在我的仓库中看到我的 apk。

在第二步中,我尝试从存储库中拉下 .apk 并将其推送到设备场。 .apk 上传到存储库就好了,但我不知道如何让 gradle 下载它。

理想情况下,在用于上传文件的同一个 build.gradle 文件中,我会有某种 gradle 任务,可以从 repo 下载文件并允许我对其进行操作。

到目前为止我已经尝试过:

  1. 将文件指定为依赖项。我在其中添加了带有 compile(group, name, version, classifier, apk) 的依赖项闭包。当我运行它时,似乎 gradle 可以找到该文件,但是我收到此错误

项目应用程序上的 apk 解析为不支持作为编译依赖项的 APK 存档。

我相信这是因为我正在使用 compile 命令,并且因为我正在下载一个 .apk,这并不是你可以对它做的事情。

  1. 我尝试使用这个库

https://github.com/michel-kraemer/gradle-download-task

但由于本地 .so 库,在我的机器上运行它时遇到问题。

有人知道如何使用 gradle 从 nexus 存储库下载 .apk 吗?

【问题讨论】:

  • am running into issues running it on my machine because of the native .so libraries - 尝试在 github 上向其作者报告此问题?
  • 你试过这个 gradle dependencies { compile 'de.undercouch:gradle-download-task:3.1.1' } ????

标签: android gradle android-gradle-plugin nexus


【解决方案1】:

我终于找到了一种方法来做我想做的事。在我的应用级别 build.gradle 我添加了以下内容:

configurations {
    drivers
}

dependencies {
    drivers (group: 'com.my.groupname', name: 'myAppId', version: '0.0.123-SNAPSHOT', classifier: 'apk', ext: 'apk')
}

task copyDrivers(type: Copy) {
    from configurations.drivers
    into "/builds/dev/mobile-android-sync/android/app/build"
}

请注意,当我上传我的工件时,我使用了以下代码(我认为这很重要,因为我指定了一个分类器):

artifacts {
    archives(apk) {
         type = "apk"
         classifier = 'apk'
    }

    archives(testApk) {
         type = "apk"
         classifier = 'testapk'
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 2018-04-29
    • 2014-06-20
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2012-06-10
    相关资源
    最近更新 更多