我在 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/