2016-08-30 60 views
0

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

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

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

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

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

  1. 指定文件的依赖性。我在里面添加了一个编译(组,名称,版本,分类器,apk)的依赖关系。当我运行它,它似乎gradle这个可以找到该文件,但我得到这个错误

APK项目应用解析到不支持的编译依赖性的APK档案。

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

  • 我尝试使用这个库
  • https://github.com/michel-kraemer/gradle-download-task

    ,但我遇到了,因为本地。所以我的机器上运行它的问题库。

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

    +0

    '我遇到了由于本机.so库而在我的机器上运行它的问题 - 尝试向github上的作者报告此问题? –

    +0

    您可能需要https://github.com/RiotGamesMinions/nexus_cli –

    +0

    你试试这个gradle这个依赖{ 编译 'de.undercouch:gradle这个下载任务:3.1.1' } ???? –

    回答

    0

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