如何在 IntelliJ 15 中导入现有的 Grails 3 (3.0.12) 项目

How do I import an existing Grails 3 (3.0.12) project in IntelliJ 15

IntelliJ 网站上有创建新 Grails 项目的文档,但导入项目比较粗略,我无法让它为我工作。

如果我告诉 IntelliJ 导入一个新项目,并将其指向我的项目目录,它不会将其识别为 Grails 项目。项目导入后,我可以进入Project菜单,右击项目进入"add Framework support..."和selectGroovy,但是IntelliJ还是不识别我的项目是Grails项目.例如,对于一个新的 Grails 项目,运行 菜单将包含一个用于 运行 应用程序的按钮,该按钮将装饰有与 Grails 同义的 3 杯图标。我导入的项目没有得到它。

以下是我目前采取的准确步骤:

  1. 从我未导入的新项目开始。这是一个项目,我可以使用 grails compile 手动构建。
  2. 打开 IntellliJ 15 UE 并select“导入项目
  3. Select 包含我的 build.gradle 文件和 grails-app 目录的顶级目录
  4. Select 从现有源创建项目
  5. 默认项目name/location
  6. Select 找到的所有源目录。这些包括:
    1. grails-app conf、控制器、域、init、taglib 目录
    2. src/main/groovy
    3. test/unit
  7. Libraries 屏幕上,使用默认的 gradle-wrapper 选项
  8. 模块 屏幕上选择 3
  9. "Select project SDK..." 我 select 我的 1.8 JDK 设置。这里没有提到 Grails。
  10. 我看到 "No Frameworks detected" 消息。我应该可以在这里配置 Grails 吗?
  11. Select完成。

此时我在 IntelliJ 编辑器中 window 有一个无法构建的项目。我可以转到 "Add Frameworks Support" 并启用对 Groovy 的支持,然后参考我的 Grails SDK。但无论如何我觉得我不应该这样做。我认为 IntelliJ 应该能够检测到我的项目类型和特征,我只是没有正确配置它。

但无论如何,我的项目仍然无法在 IntelliJ 中编译。我必须通过控制台构建它。现在 src/main/groovy 中 Java 个文件中的 none 个正在编译。所有引用 org.springframework 的导入都返回 "cannot resolve symbol" 错误。

我以前也遇到过这个问题。唯一的解决办法是:

  • 吹走intellij项目
  • 从现有来源导入
  • 双击 build.gradle
  • 确保 gradle 上的 auto-import 设置为 false

这是相关的 IntelliJ 问题 - https://youtrack.jetbrains.com/issue/IDEA-149513