使用 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 中出错

【白水日记】使用build.gradle.kts

Netbeans 使用 pom.xml (Maven) 而不是 build.gradle (Gradle)

Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

Android Gradle 插件Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )

gradle build出错怎么改