首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle Crittercism on build映射上传不起作用

Gradle Crittercism on build映射上传不起作用
EN

Stack Overflow用户
提问于 2016-11-14 22:18:11
回答 2查看 170关注 0票数 0

我试图上传到Crittercism的构建,我把这个放在我的gradle文件的底部。但是,当我构建调试时,它似乎不起作用。我做错了什么?

代码语言:javascript
复制
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', 'proguard=@build/outputs/mapping/production/release/mapping.txt',
            '-F', "app_version=$appVersionName-$appVersionCode",
            '-F', "key=$critterKey"

    type Exec
    dependsOn 'assembleDebug'
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-15 02:50:50

您已经完成它的方式,您定义的任务,uploadMappingToProd,如果由于某种原因被调用,也会调用assembleDebug。因为您要求uploadMappingToProd依赖assembleDebug,而不是相反。因此,assembleDebug将很高兴地完成任务,而不会接近uploadMappingToProd

如果您希望反向依赖关系,即assembleDebug依赖于uploadMappingToProd,那么您需要在定义任务之后添加这一行。

代码语言:javascript
复制
afterEvaluate {       
    tasks.assembleDebug.dependsOn uploadMappingToProd
}

这将保证每次调用uploadMappingToProd和在调用assembleDebug之前调用assembleDebug

票数 1
EN

Stack Overflow用户

发布于 2017-02-01 04:08:07

我的解决方案运行良好。(本地构建和jenkins构建)

对我来说,只有当build是来自jenkins的时候才能工作

确保您的应用程序,APPKEY和路径(release_jenkins.正常释放)

build.gradle (app) (末尾添加)

代码语言:javascript
复制
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", "proguard=@" + 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40598759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档