gradle - 在 gradle-5.1.1 中用什么代替 TaskInternalexecute() ?

标签 gradle groovy android-gradle-plugin crashlytics google-fabric

我在 gradle-4.10.1 的自定义任务:

task fabricUploadApkDevelop(group: "fabric", dependsOn: ['assembleDevDebug']) {
    doLast {
        //fabric gradle task `assembleRelease crashlyticsUploadDistributionDevDevelop` and options:
        def task = tasks.getByName("crashlyticsUploadDistributionDevDebug")
        task.ext.betaDistributionGroupAliases = "develop"
        task.ext.betaDistributionNotifications = true
        task.ext.betaDistributionReleaseNotesFilePath = "${project.rootDir}/app/build/outputs/apk/dev/debug/releaseNotes.txt"
        task.execute()
    }
}

但是在gradle-5.1.1:

TaskInternal.execute() 已删除,所以现在我无法运行我的 task.execute(),如何更改我的自定义任务?或者如何通过终端使用参数运行任务crashlyticsUploadDistributionDevDebug

我尝试使用:

  //gradle 5.x
task fabricUploadApkDevelop(group: "fabric") {
    ext.betaDistributionGroupAliases = "develop"
    ext.betaDistributionNotifications = true
    ext.betaDistributionReleaseNotesFilePath = "${project.rootDir}/app/build/outputs/apk/dev/debug/releaseNotes.txt"

    doLast {
        ext.betaDistributionGroupAliases = "develop"
        ext.betaDistributionNotifications = true
        ext.betaDistributionReleaseNotesFilePath = "${project.rootDir}/app/build/outputs/apk/dev/debug/releaseNotes.txt"
    }

    finalizedBy 'crashlyticsUploadDistributionDevDebug'
}

但是crashlyticsUploadDistributionDevDebug任务没有获取参数...

最佳答案

Fabric/Crashlytics Gradle 插件的源代码似乎没有公开(而且我自己从未使用过它),否则我会在那里检查。但是考虑到您的 Gradle 4 工作示例并通过我的普通 Gradle 眼镜查看问题,我希望以下内容应该/可以与 Gradle 5 一起使用:

project.afterEvaluate {
    crashlyticsUploadDistributionDevDebug.doFirst {
        ext.betaDistributionGroupAliases = "develop"
        ext.betaDistributionNotifications = true
        ext.betaDistributionReleaseNotesFilePath = "${project.rootDir}/app/build/outputs/apk/dev/debug/releaseNotes.txt"
    }
}

task fabricUploadApkDevelop(group: "fabric") {
    dependsOn 'crashlyticsUploadDistributionDevDebug'
}

我什至期望有一种更好的方法来做到这一点,但由于我自己无法测试这一点,所以我想谨慎行事。让我知道它是否有效!

关于gradle - 在 gradle-5.1.1 中用什么代替 TaskInternalexecute() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163312/

相关文章:

java - 如何在gradle中创建文件集合的集合?

maven - 处理Maven非库 Artifact 依赖项的Gradle方法

groovy - 如何对groovy中的变量取反

file-io - 如果 Groovy 中不存在则创建文件

android - 重复的 zip 条目 [commons-io-1.3.2.jar :org/apache/commons/io/CopyUtils. 类])

android - 我如何让 Gradle for Android 从其他测试代码中找到一个库的测试代码?

android - 如何从 Gradle 将 System.property 传递给 Android 应用程序?

android - 连结 3 : Version clash for one artifact in two different repos of one group

java - 自定义 Gradle 任务类使用哪种语言?

尝试包含本地库时 Android Studio Gradle 构建失败