2016-08-30 71 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' 
        } 
    } 
    
    相關問題