gpt4 book ai didi

gradle - 未找到Gradle任务,但存在于任务列表中

转载 作者:行者123 更新时间:2023-12-03 03:47:05 24 4
gpt4 key购买 nike

我想为一个Android项目创建一个自定义gradle任务,该任务将调用其他任务链,具体取决于构建风格和构建配置。

所以,这就是我在build.gradle.kts中所做的(我们使用kotlin脚本)

gradle.projectsEvaluated {
rootProject.allprojects.filter { project ->
!Config.CodeQuality.ignoredProjects.contains(project.name)
}.forEach { project ->
project.tasks.filter { task ->
task.name.startsWith("lint")
}.forEach { task ->
val taskSyfix = task.name.drop(4)
val taskName = "codeQuality$taskSyfix"
println("qualityscripts create task $taskName")
project.tasks.create(taskName) {
group = "verification"
dependsOn("checkstyle", "deteltCkeck", "ktlint", task.name)
}
}
}
}

因此,比起我执行./gradlew任务
...
Verification tasks
------------------
check - Runs all checks. checkstyle - Runs checkstyle.
codeQuality
codeQualityDebug
codeQualityDevMenuFlavor1Debug
codeQualityDevMenuFlavor1Release
codeQualityDevMenuFlavor2Debug
codeQualityDevMenuFlavor2Release
...

因此它们存在。但是,如果我尝试运行任何命令,则会收到下一个错误:

  • What went wrong: Task 'codeQualityDevMenuFlavor1Debug' not found in root project 'myproject-android'.

最佳答案

我可以重现您的问题,我认为它已连接到按需配置执行模式,该模式似乎已在您的环境中启用。您可以尝试禁用此模式并重新测试吗? (在Android Studio中:File > Settings > Build, Execution, Deployment > Compiler:取消选中“按需配置”选项)。

启用此模式后,当您尝试执行动态创建的任务时(例如:您的codeQuality *任务):Gradle将不会执行gradle.projectsEvaluated {}块:因此,在您情况下,将不会创建自定义任务,导致错误Task 'codeQualityDevMenuFlavor1Debug' not found
有关按需配置功能的更多信息,请参见Configuration on demandthis answer

Android Studio和此模式也存在一些已知问题,请参见:Configuration on demand is not supported by the current version of the Android Gradle plugin

关于gradle - 未找到Gradle任务,但存在于任务列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com