gradle不生成类defaulttaskinputpropertyregistration不能转换为类taskinputs

qpgpyjmq  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(219)

一个项目使用gradlewrapper4.6,我不得不将它更新到5.0,因为我的电脑上安装了java11。
当gradlew4.6与java8一起使用时,构建是可以的。
升级到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命令或任务,我都会得到相同的错误。
更新
适用于gradle高达4.10。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重写插件定义:

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

导致以下错误:
失败:生成失败,出现异常。
其中:生成文件“c:\myprojects\build.gradle”行:52
出了什么问题:评估根项目“myproject”时出现问题。
找不到参数的方法plugins()[build_1pjmxtxk8zv5w7chejrs1s08b$_run_closure2$_closure7@73b72d7e]在项目上:org.gradle.api.project类型的“api”。
尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。运行--扫描以获得完整的见解。
获取更多帮助https://help.gradle.org
此版本中使用了不推荐的gradle功能,使其与gradle 6.0不兼容。使用“--warning mode all”来显示各个弃用警告。看到了吗https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:命令行警告
在0s中配置失败

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题