Gradle 不构建 - 类 DefaultTaskInputPropertyRegistration 不能转换为类 TaskInputs

问题描述

一个项目正在使用 gradle wrapper 4.6,我不得不将其更新到 5.0,因为我的电脑安装了 java 11。

将 gradlew 4.6 与 java 8 build 一起使用时没问题。

升级到 5.0 并使用 java 11(gradle wrapper 5.0 和已安装的 gradle 6.5)运行后,不断抛出以下错误

FAILURE: Build Failed with an exception.

* Where:
Build file 'C:\MyProject\build.gradle' line: 52

* What went wrong:
A problem occurred evaluating root project 'my_project'.
> Failed to apply plugin [id 'org.gradle.java']
   > Could not create task ':api:compileJava'.
      > class org.gradle.api.internal.tasks.DefaultTaskInputPropertyRegistration cannot be cast to class org.gradle.api.tasks.TaskInputs (org.gradle.api.internal.tasks.DefaultTaskInputPropertyRegistration and org.gradle.api.tasks.TaskInputs are in unnamed module of loader org.gradle.internal.classloader.Visitableurlclassloader @26653222)

build.gradle 中产生错误的行是

configure(subprojects - [project(':event')]) { subProject ->
    apply plugin: 'java' // <= this line 52
    apply plugin: ...
    ...
}

这是一个多项目的gradle项目,build.gradle是根

不管我运行哪个 gradle 命令或任务,我总是收到同样的错误

更新
适用于高达 4.10 的 gradle。 5.0 开始失败。

https://docs.gradle.org/5.0/userguide/upgrading_version_4.html

Java 库分发插件现在基于 Java 库插件而不是 Java 插件。 虽然它应用了 Java 插件,但它的行为略有不同(例如,它添加了 > API 配置)。因此,请务必在升级后检查您的构建是否按预期运行。

仍然不知道这意味着什么以及我应该用它做什么

更新 2 (Laksitha Ranasingha 评论
在gradle 5.0中试过,build.gradle重写了plugins定义:

configure(subprojects - [project(':event')]) { subProject ->
    plugins { // <= line 52
        id 'java' 
        ...
    }
    ...
}

导致以下错误

FAILURE:构建失败,出现异常。

  • 哪里: 构建文件 'C:\MyProjects\build.gradle' 行:52

  • 出了什么问题: 评估根项目“myproject”时出现问题。

在 org.gradle.api.Project 类型的项目“:api”上找不到参数 [build_1pjmxtxk8zv5w7chejrs1s08b$_run_closure2$_closure7@73b72d7e] 的方法 plugins()。

  • 试试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

  • https://help.gradle.org

    获得更多帮助

此版本中使用了弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。 使用“--warning-mode all”来显示单个弃用警告。 见https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings

配置在 0 秒内失败

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)