问题描述
一个项目正在使用 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()。
此版本中使用了弃用的 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 (将#修改为@)