android - 使用 gradle 从存储库下载 apk

标签 android gradle android-gradle-plugin nexus

我正在为一个 android 项目设置一个 CI 构建系统,并且无法使用 gradle 从构建中下载工件。

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

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

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

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

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

  • apk on project app resolves to an APK archive which is not supported as a compilation dependency.



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

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



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

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

    最佳答案

    我终于找到了一种方法来做我想做的事。在我的应用程序级别 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'
        }
    }
    

    关于android - 使用 gradle 从存储库下载 apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235420/

    相关文章:

    android - AChartEngine - 通过 x 读取 y 值

    android - 在 Android Gradle 中禁用发布版本的代码

    android - Android Studio 构建配置错误

    android - 无法在 android 上构建应用程序。多个链接错误

    android - 原因 : invalid type code: 1C for android studio gradle

    java - 在打开推送通知时解析推送 "No Activity Found"

    android - 在 imageview 中设置图像,使其看起来像进度条

    gradle - 配置中的all * .exclude和all.exclude有什么区别

    android - 无法为org.gradle.api.Project类型的项目 'localProperties'设置未知属性 ':app'

    android - 如何更改布局上 RadioGroup 的大小?