使用 Gradle build 在 IntelliJ IDEA 中获取 Gradle 依赖项
Posted
技术标签:
【中文标题】使用 Gradle build 在 IntelliJ IDEA 中获取 Gradle 依赖项【英文标题】:Getting Gradle dependencies in IntelliJ IDEA using Gradle build 【发布时间】:2015-02-25 23:14:22 【问题描述】:Grade build,即使在 IntelliJ IDEA 内部,也不会将依赖项放入“External Libraries”文件夹中,因此这些类不会在编辑器中显示为建议,当我手动将它们添加为导入时,会进行编译错误。
如何让 IntelliJ 自动将依赖项合并到我的 build.gradle 文件中,例如:
compile 'com.google.code.gson:gson:1.7.2
【问题讨论】:
将项目导入为 gradle 项目,确保您已启用 gradle 支持。 【参考方案1】:您需要将项目作为 Gradle 项目从 Idea 中导入。添加依赖项时,您需要打开 Gradle 窗口并执行刷新。
或者从 gradle 生成项目文件:
build.gradle:
apply plugin: 'idea'
然后运行:
$ gradle idea
如果您修改了依赖项,您将需要再次重新运行上述内容。
【讨论】:
apply plugin: 'idea'
无论如何都应该加上。
@PeterNiederwieser - 如果你正在从 Idea 导入,它有什么影响?
它允许配置 IntelliJ 设置的各个方面(例如,使用哪个 JDK),导入时应该遵守这些。如果您的构建没有任何此类配置,则可能不需要应用插件(我从未尝试过)。
谢谢,很高兴知道,我专门使用 gradle 为我生成项目文件,所以不需要这样做
在生成项目文件时也是如此,除了在这种情况下应用插件绝对不是可选的。【参考方案2】:
添加依赖后打开“Gradle”('View'->Tool Windows->Gradle)选项卡并点击“refresh”
添加示例(编译'io.reactivex:rxjava:1.1.0'):
如果 Idea 仍然无法解析依赖项,则可能是依赖项不在 mavenCentral() 存储库中,您需要将此依赖项所在的存储库添加到存储库中
【讨论】:
但是好像不行。我添加了一个依赖并刷新了,但是当我尝试在 XML 或 Java 源代码中导入库时,IDEA 无法解析它。 为我工作。值得庆幸的是,即使没有使用 idea gradle 插件。 @AuBee:我遇到了同样的问题。当我从命令行使用 Gradle 构建(仅一次)时,它就消失了。 @Thomas 是的。 CLI 总是有更多的控制权 @AuBee 如果 Idea 无法解析依赖项,则可能依赖项不在 mavenCentral() 存储库中,您还需要将存储库添加到存储库中【参考方案3】:将现有的 Gradle 项目(带有 build.gradle
的项目)导入 IntelliJ IDEA 时,当出现以下屏幕时,选择 从外部模型导入 -> Gradle .
或者,在下一个屏幕上选择 Auto Import 以自动导入新的依赖项。
【讨论】:
其实这个答案解决了我的问题,应该是你在上面的实际正确答案之前做的第一件事。 这是唯一有效且正确的解决方案。仅仅为了想法而在 gradle.properties 中添加一些东西是完全错误的。 如果不对原始导入执行此步骤,我根本无法获得语法突出显示和自动完成功能。您也许可以在不重新导入的情况下修复它,但这要容易得多,至少在一个小项目上是这样。 @user219882 - 为什么在你的构建中添加一些东西“完全错误”? @tddmonkey 因为用户选择使用的 IDE 与描述如何进行构建无关。【参考方案4】:Andrey 的上述帖子仍然适用于截至 2017 年第 3 季度的最新版 Intellij。所以请使用它。因为,构建项目和外部命令行 gradle 构建,不会将其添加到 Intellij 中的外部依赖项中......这听起来很疯狂。现在唯一的区别是 UI 看起来与上面的不同,但仍然使用相同的更新图标。我只是在这里给出一个答案,因为我无法粘贴新 UI 的快照……我本身不想要任何赞成票。安德烈在上面仍然给出了正确答案:
【讨论】:
【参考方案5】:对于那些收到“无法解决依赖关系”错误的人: 关闭“离线模式” ('查看'->工具窗口->Gradle)
【讨论】:
【参考方案6】:在我的情况下,我在刷新 gradle('View'->Tool Windows->Gradle)选项卡并点击“refresh”时遇到错误,没有此类 jetgradleplugin 类的属性 gradleversion。
必须安装与 gradle 5+ 兼容的最新 intellij
【讨论】:
【参考方案7】:尝试了此线程中的所有内容,但在 IntelliJ 2020.2 中对我没有任何帮助。 This answer did the trick,但我必须设置正确的 JDK 路径,然后在 Gradle 设置中选择它(如下图所示):
-
为 Java SDK 设置正确的路径(在 File->Project Structure 下):
-
在 Gradle 窗口中,点击“Gradle 设置...”
-
从此处的 (1) 中选择正确的 SDK:
之后,“重新加载所有 Gradle 项目”选项按预期下载了所有依赖项。
干杯。
【讨论】:
Intellij 2020.3 上的完美解决方案!【参考方案8】:我遇到了同样的错误,但没有其他任何工作。最后,我做了以下事情:
-
关闭 IntelliJ IDEA。
从我的项目文件夹中删除 .idea 目录。
重新打开 IntelliJ 并再次导入项目(作为 Gradle)。
在上述之后,当我单击 gradle 刷新按钮时,我添加到 build.gradle 的任何新 gradle 依赖项都开始出现在 External Dependencies 部分中。
【讨论】:
以上是关于使用 Gradle build 在 IntelliJ IDEA 中获取 Gradle 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
使用 clean() 方法在我的 build.gradle 中出错
Netbeans 使用 pom.xml (Maven) 而不是 build.gradle (Gradle)
Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )
Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )