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()
,如何更改我的自定义任务?或者如何通过终端使用参数运行taskCrashlyticsUploadDistributionDebug
我尝试使用:
//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版本之外,您是否还更改了配置中的其他内容?