gradle-5.1.1中的TaskInternal execute()有什么用?

gradle-5.1.1中的TaskInternal execute()有什么用?,gradle,groovy,android-gradle-plugin,crashlytics,google-fabric,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.getByNam

我的自定义任务位于
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

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()
    }
}
TaskInternal.execute()
已删除,因此现在我无法运行我的
task.execute()
,如何更改我的自定义任务?或者如何通过终端使用参数运行task
CrashlyticsUploadDistributionDebug

我尝试使用:

  //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'
}

但是
Crashlytics UploadDistributionDebug
任务没有获取参数…

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'
}

我甚至希望有一个更好的方法来做这件事,但因为我不能自己测试,我想稳操胜券。让我知道它是否有效或无效

只需使用所需的参数声明任务,并对其进行依赖。不需要执行官<代码>任务A(类型:XYZ){parm1=“…”parm2=“…”}
无法获取项目的未知属性“CrashlyticsUploadDistributionDebug”:org.gradle.api.project类型的应用程序。
感谢您的反馈!
crashlyticsupploaddributiondevdebug
任务的定义似乎晚于
fabricUploadApkDevelop
任务。我已经更新了代码,使其更加保守。如果这仍然不起作用,那么我想知道除了Gradle版本之外,您是否还更改了配置中的其他内容?