gradle - 在 graph.getAllTasks().last() 上加载 intellij 中的 Gradle 更改,出现错误“无法从空列表访问 last() 元素”
问题描述
我打印了一个简单的语句,说明所有任务都已完成,并带有 gradle 中的时间戳。我们已经实现如下:
gradle.getTaskGraph().whenReady { graph ->
graph.getAllTasks().last().doLast {
这一切似乎从命令行运行得非常好,但是在 intellij 中,当第一次加载 gradle 时,构建中断是由于
* 例外是:java.util.NoSuchElementException: 无法从空列表访问 last() 元素
这会阻止“外部库”被填充,因此智能感知和语法突出显示也会停止。它还会停止在 Gradle 视图中填充 Gradle 任务列表。
如果我删除用于打印此语句的代码块,那么一切都按预期工作,如果我重新引入代码,那么“加载 Gradle 更改”将失败并出现相同的错误,除了我现在可以毫无问题地运行任何 gradle 任务.
我是否错误地实现了 getTaskGraph().whenReady?如果我调试代码(在完成上述工作之后),我可以在图形对象中看到任务列表。这似乎只是 intellij 不喜欢的初始负载。
解决方案
有一个相关问题:IDEA-256858 Can't import Gradle project in IDEA 2020.3: "Cannot access last() element from an empty List" taskGraph.allTasks 错误。
我猜,原因是TaskGraph在这个评估时刻确实是空的,所以代码抛出了这个异常。
推荐阅读
- reactjs - 从命令行使用 env 文件反应构建
- bash - 如何将网络中的主机总数转换为掩码?
- javascript - 关于用 `Date.now()` 初始化 `useState` 的问题
- asp.net - 安装 Asp.net 核心运行时无法在 ubuntu linux 操作系统上运行
- r - 在R中的for循环中将列表作为变量名输出
- arrays - 角度循环json对象和过滤数据
- c - 外部:找不到命令
- python - 如何在使用 systemd 服务关闭之前使 python 脚本显示图像?
- python - 使用熊猫中的分层数据获取列中的值计数
- python - 到目前为止,将 daily_volume 添加到数据框 pandas