【问题标题】:IntelliJ (2020.2) - How disable 'Build project automatically' for a project based on Gradle?IntelliJ (2020.2) - 如何为基于 Gradle 的项目禁用“自动构建项目”?
【发布时间】:2020-11-12 15:24:14
【问题描述】:

我是 Eclipse/STS 用户/开发人员,现在尝试使用 IntelliJ Idea (CE)

  • 2020.2.(1,2,3)

对于基于 Gradle 的项目,spring-integration 是如何进行的,当我打开 IDE 时会发生以下情况

好的,让 IDE 加载项目……但是

从上面看,这就是问题所在,我不希望 IDE 自动启动来构建/重建项目。我只需要,打开项目就可以了。

观察:例如在 Eclipse/STS 中存在禁用自动构建的选项

我确实在网络上进行了一项研究,并阅读了以下帖子和问题:

遗憾的是,对话框选项已更改,但 ...

因此:

从上面看,似乎没什么。

观察:从上面观察Build project automatically选项被禁用

即使禁用该功能并在重新启动 IDE 后,我也必须始终手动停止构建过程

那么缺少什么?还是我需要一个特殊的额外插件来实现我的目标?

【问题讨论】:

  • 尝试取消选中此选项:youtrack.jetbrains.com/issue/…
  • 我确实这样做了,问题仍然存在。真奇怪。顺便说一句,您的解决方案理论上是面向构建脚本更改的,在我的情况下,我从未编辑过任何 gradle 文件,我只是打开 IDE

标签: intellij-idea


【解决方案1】:

IntelliJ 的 Gradle 支持中有两个不同的东西有时会混淆:syncbuild。您的图片展示了sync 过程(注意工具窗口上的标题)。字 build 在这里有点误导。

sync 是什么?在 gradle 中,我们使用 Groovy 来定义构建过程。 Groovy 是一种命令式编程语言,因此很难在不实际执行脚本的情况下预测生成的依赖关系图。在sync 期间,Idea 执行gradle buildconfiguration phase(构建依赖图),并从Gradle 守护进程获取配置的对象。此信息用于在 IDE 中设置项目:模块、库、依赖项、哪些源是测试、哪些是产品等。

sync 期间没有进行实际构建。您可以通过向任何源文件添加语法错误来说服自己,并观察同步是否成功。但是如果你调用它,构建会失败。


回答原始问题:您不能禁用自动构建,因为它未启用。

是否可以在 Gradle 项目中禁用同步?简短的回答 - 不。如果您需要一个代码浏览器,而无需了解源代码中的所有交叉引用,IDEA 可能不是最佳选择。


TL;DR;

没有sync IDE 不知道哪些文件是源文件,哪些不是。 IDEA 无法打开文件夹。它只能打开项目。好消息是模块可以包含文件夹。因此,您可以执行以下操作:File | New | Project。选择Empty projectNext,选择一些随机文件夹外部要打开的源文件夹,Finish

然后添加新模块:

在左侧面板中选择Java,其他一切保持默认,NextFinish。然后在新模块中删除现有的内容根目录,并将带有源的文件夹添加为新的内容根目录

生成的项目大多是无用的。大量的红色代码(至少,来自外部库的未解析符号),没有检查,没有导航,没有意义。但它确实在一些罕见的情况下很有用。

【讨论】:

  • 感谢您的反馈,但应该如何解决?
  • 在第一次 Gradle 项目加载时,IDE 将始终同步项目 b/c,它需要根据 Gradle 构建脚本中的配置来配置项目结构。对于此 IDE 在您打开项目时调用同步。在Build Tools IDE 设置下配置所有其他“同步”操作的工作方式。
  • 愚蠢的我。忘记回答问题了。已更新。
【解决方案2】:

您显示的图像表明您正在使用 Gradle 构建,但您禁用的编译器选项与使用 Idea 而不是使用 Gradle 构建项目相关。 对于 2020.2 版本,您需要执行以下操作:

  1. 打开设置 > 构建工具页面。 2.禁用“重新加载构建脚本中的更改”选项。这样您就可以手动控制重新加载。当您更改构建脚本时,您会在编辑器的右侧看到一个小的 gradle 图标。

有关更多信息,请参阅 IntelliJ IDEA 帮助 > Gradle 部分。 https://www.jetbrains.com/help/idea/work-with-gradle-projects.html#auto_reload

【讨论】:

  • 我确实这样做了,问题仍然存在。真奇怪。顺便说一句,您的解决方案理论上是面向构建脚本更改的,在我的情况下,我从未编辑过任何 gradle 文件,我只是打开 IDE
猜你喜欢
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
相关资源
最近更新 更多