使用gradle从存储库

时间:2016-08-30 19:14:34

标签: android gradle android-gradle nexus

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

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

在第二步中,我试图将.apk从存储库中拉下来并将其推送到设备场。 .apk很好地上传到存储库,但我无法弄清楚如何下载它。

理想情况下,在用于上传文件的build.gradle文件中,我有一些gradle任务可以从repo下载文件并允许我操作它。

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

  1. 将文件指定为依赖项。我在其中添加了依赖关系闭包与编译(组,名称,版本,分类器,apk)。当我运行它时,似乎gradle可以找到该文件,但是我收到此错误
  2.   

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

    我相信这是因为我使用了编译命令,因为我正在下载一个.apk,但这并不是你可以做的事情。

    1. 我试图使用这个库
    2.   

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

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

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

1 个答案:

答案 0 :(得分:0)

我终于找到了一种方法来做我想做的事。在我的app level 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'
    }
}