2016-11-14 29 views
0

我試圖上傳到構建上的Crittercism,並將其放在我的gradle文件的底部。但是,當我構建調試時,它似乎不工作。我究竟做錯了什麼?Gradle Crittercism構建映射上傳不起作用

task uploadMappingToProd() << { 
    def critterAppId = "abcde" 
    def appVersionName = "1.0.1" 
    def appVersionCode = "DEBUG" 
    def critterKey = "12345" 

    commandLine 'curl', 
      "https://app.crittercism.com/api_beta/proguard/$critterAppId", 
      '-F', '[email protected]/outputs/mapping/production/release/mapping.txt', 
      '-F', "app_version=$appVersionName-$appVersionCode", 
      '-F', "key=$critterKey" 

    type Exec 
    dependsOn 'assembleDebug' 
} 

回答

1

你做了它的方式,您已經定義,uploadMappingToProd任務,將如果由於某種原因調用還援引assembleDebug。因爲您要求uploadMappingToProd取決於assembleDebug - 而不是相反。因此assembleDebug將愉快地完成沒有得到接近uploadMappingToProd的任何地方。

如果您想要反向依賴關係,即assembleDebug取決於uploadMappingToProd那麼您需要在定義任務後添加此行。

afterEvaluate {  
    tasks.assembleDebug.dependsOn uploadMappingToProd 
} 

這將保證uploadMappingToProd被調用每次並調用之前assembleDebug

0

我的解決方案是工作的罰款。(本地構建和詹金斯建)

對我來說,只有當積累是從詹金斯

請確保您的應用標識,APPKEY和路徑(release_jenkins工作....通常釋放)

的build.gradle(APP)(添加在末端)

task uploadPro << { 
    logger.error("Uploading mapping.txt file to crittercism") 
    String temp = projectDir; 
    temp = temp.replace("\\", "/"); 
    String[] cmd = ["curl", "-k", "https://app.crittercism.com/api_beta/proguard/AppIDSting", 
       "-F", "[email protected]" + temp + "/build/outputs/mapping/release_jenkins/mapping.txt", 
       "-F", "app_version=" + VERSION_NAME + '-' + VERSION_CODE, 
       "-F", "key=API_KEY"] 
    logger.error("CMD : " + cmd) 
    ProcessBuilder builder = new ProcessBuilder(cmd); 
    Process process = builder.start(); 
    process.waitFor() 
    println process.err.text 
    println process.text 
    } 

gradle.buildFinished { 
    //check your build type. I am not sure it's the best way to do it. 
    logger.error("JSC : 이름 ! - " + gradle.startParameter.taskNames); 
    if (gradle.startParameter.taskNames.contains("assembleRelease_jenkins")) { 
     logger.error("JSC : 올리기 시작 ! - " + gradle.startParameter.taskNames); 
     tasks.uploadPro.execute() 
    } else { 
     logger.error("JSC : PASS") 
    } 
} 

示例項目 - >https://github.com/SinsangMarket/CrittercismMappingTXT