使用Gradle构建在IntelliJ IDEA中获取Gradle依赖关系


140

即使从IntelliJ IDEA内部进行成绩构建,也不会将依赖项放入“外部库”文件夹中,因此这些类不会在编辑器中显示为建议,当我手动将其作为导入添加时,会出现编译错误。

如何使IntelliJ自动将依赖项合并到我的build.gradle文件中,例如:

compile 'com.google.code.gson:gson:1.7.2


2
将项目导入为gradle项目,请确保已启用gradle支持。
M. Deinum 2014年

Answers:


191

您要么需要从Idea中将项目导入为Gradle项目。添加依赖项时,您需要打开Gradle窗口并执行刷新。

或者使用以下方式从gradle生成项目文件:

build.gradle:

apply plugin: 'idea'

然后运行:

$ gradle idea

如果您修改依赖关系,则需要再次重新运行上面的内容。


apply plugin: 'idea'在任何情况下都应添加。
Peter Niederwieser 2014年

@PeterNiederwieser-如果您要从Idea导入,它会产生什么影响?
tddmonkey 2014年

它允许配置IntelliJ设置的各个方面(例如,使用哪个JDK),导入应遵守该设置。如果您的构建没有任何此类配置,则可能没有必要应用该插件(我从未尝试过使用该插件)。
Peter Niederwieser 2014年

谢谢,很高兴知道,我专门使用gradle来为我生成项目文件,所以永远不需要这样做
tddmonkey 2014年

生成项目文件时也是如此,只是在这种情况下,应用插件绝对不是可选的。
Peter Niederwieser 2014年

188

添加依赖项后,打开“ Gradle”(“视图”->“工具Windows”->“ Gradle”)选项卡,然后单击“刷新”

添加示例(编译“ io.reactivex:rxjava:1.1.0”):

点击刷新

如果Idea仍然无法解决依赖关系,则可能是该依赖关系不在mavenCentral()存储库中,您需要在此依赖项位于存储库中的地方添加存储库{}


13
但似乎不起作用。我添加了一个依赖关系并刷新了,但是当我尝试以XML或Java源代码导入该库时,IDEA无法解决它。
AuBee

3
为我工作。值得庆幸的是,即使没有使用idea gradle插件。
gMale

2
@AuBee:我有同样的问题。当我从命令行使用Gradle构建(仅一次)时,它消失了。
托马斯

@Thomas是的。CLI始终具有更多控制权
Andrey

@AuBee如果Idea无法解决依赖关系,则可能是该依赖关系不在mavenCentral()存储库中,您还需要将存储库添加到存储库{}
Andrey

20

将现有的Gradle项目(带有的一个build.gradle)导入IntelliJ IDEA时,出现以下屏幕时,选择Import from external model- > Gradle

从外部模型导入项目

(可选)在下一个屏幕上选择“ 自动导入 ”以自动导入新的依赖项。


3
实际上,此答案解决了我的问题,应该是您在上面实际正确答案之前要做的第一件事。
quickinsights

3
这是唯一可行且正确的解决方案。仅出于想法而在gradle.properties中添加内容是错误的。
user219882

如果不对原始导入执行此步骤,则根本无法突出显示语法并自动完成工作。您可能可以修复它而无需重新导入,但这要容易得多,至少在一个小型项目中是如此。
Ed Norris

@ user219882-为什么在您的构建中添加一些内容“明了错误”?
tddmonkey '18 -10-23

@tddmonkey,因为用户选择使用的IDE与描述构建方式无关。
Qix-蒙尼卡(Monica)

11

对于那些遇到“无法解决依赖关系”错误的人:
切换“离线模式”关闭
(“查看”->“工具Windows”->“渐变”)

摇篮窗口


5

截至2017年第3季度,Andrey的上述职位适用于Intellij的最新版本。请使用它。“原因,构建项目和外部命令行gradle构建,不会将其添加到Intellij的外部依赖项中……疯狂,因为这听起来是真的。现在唯一的区别是用户界面看上去与上面的有所不同,但仍使用相同的图标进行更新。我在这里只是一个答案,因为我不能粘贴新UI的快照...我本身不需要任何投票。安德烈仍然在上面给出了正确的答案: 在此处输入图片说明


1

就我而言,在刷新gradle(“视图”->“工具窗口”->“ Gradle”)选项卡并单击“刷新”时遇到错误,并且没有为类jetgradleplugin提供此类gradleversion的错误。

必须安装与Gradle 5+兼容的最新intellij

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.