不知道为什么感觉现在比较新的项目好些都用的是 Gradle,而不是 Maven。IDEA 导入 Gradle 项目的时候遇到好几次问题了,在这里记录一下步骤,后面再次遇到要导入工程的时候好回看。

以下使用的是 MacOS,IDEA 版本为:IntelliJ IDEA Community 2016.3.3。

基本导入过程

1 先在工程目录下执行一次 gradle idea,这个时候会下载各种依赖,做一些初始化工作,看到 BUILD SUCCESSFUL 字样的时候说明成功了;
2 打开 IntelliJ IDEA 按下图选择导入工程:

导入工程第一步

3 在 Import project from external model 选 Gradle,在下一个页面中,勾选 auto-import 并选择正确的 Gradle JVM SDK:

导入工程第二步

4 点下一步进入工程之后,在最右侧 Gralde 工具栏,点一下刷新左上角的 Refresh All Gradle Projects,那个圆圈

刷新工程

遇到的问题

Http Proxy 设置问题

在 IDEA 中的 Preferences -> System settings -> Http Proxy 看有没有如下字样:

1
You have JVM property "https.proxyHost" set to .... This may lead to incorrect behavior. Proxy should be set in Settings|HTTP Proxy

有的话刷新 Gradle 很可能会失败,需要打开系统偏好设置 -> Java -> 网络设置。注意是 Java 下的网络设置,不是系统偏好设置下的“网络”。其界面如下:

网络配置

将使用浏览器设置改为直接连接,之后重启 IDEA 后再次点击 Gradle 工具下的 Refresh All Gradle Projects 重新构建工程。

Gradle sync 失败

有的时候 Refresh All Gradle Projects 执行之后在 IDEA Console 内会提示:

1
2
Gradle sync failed: Cause: error in opening zip file
Consult IDE log for more details (Help | Show Log)

这个是 gradle 下载的一些文件有问题,比如某个依赖库之类的,而且你说不清楚到底哪个文件下载出问题了,也没日志或者错误提示来告知你怎么解决。一个解决办法就是把当前工程目录下的 .gradle 目录删除掉,再尝试执行 Refresh,如果还是失败,则可以将 ~/.gradle 目录也干掉,再次 Refresh

我这里遇到这个问题似乎是因为在 gradle 执行 Refresh 过程中,正在下载依赖的时候,我强制将 IDEA 关掉了,导致了某个文件下载出错。所以在 IDEA 执行 Refresh 的时候最好等它完成后再做退出 IDEA 之类的操作。