在IntelliJ IDEA中设置Grails项目

5

我有以下目录结构

--my-app
   |
   |--main-app
   |
   |--plugins
      |
      |--plugin1
      |
      |--plugin2

在grails-app/conf/BuildConfig中,我添加了必要的配置,以确保从plugins目录加载插件,这样当我运行应用程序时,它会选择最新更改。
我正在尝试将其设置为IntelliJ中的单个项目,其中包括3个模块,一个用于主应用程序,另外两个用于每个插件。我尝试了以下步骤:
1. 生成IntelliJ项目文件 cd my-app/main-app grails integrate-with --intellij 2. 从Intellij中打开生成的.ipr文件(File | Open Project...)。这会将主应用程序和插件添加为Grails模块。
然而,每次我打开来自插件的类时,IntelliJ都会报告该类有两个实例。似乎检测到每个插件类:
1. 在插件本身的IntelliJ模块中一次; 2. 在IntelliJ自动创建的包含所有插件的模块中一次。在我的情况下,该模块命名为main-app-grailsPlugins 在项目结构视图中,我尝试从main-app-grailsPlugins中删除plugin1plugin2的内容根,但它们会自动重新添加回来。
是否有一种方法可以防止这种情况发生,或者其他正确设置IntelliJ项目的方法,以使用原地插件的Grails应用程序?我使用的是Grails 1.3.7和IntelliJ 10.5.4。

你是否尝试在 IDEA 中从现有源代码中导入 Grails 项目,而不使用 integrate-with?哪个类被报告为重复的,它位于哪里? - Peter Gromov
如果我不使用“integrate-with”,就不会出现重复问题,但是如果我以这种方式进行操作,则主应用程序和插件之间的依赖关系设置不正确。 - Dónal
Don,请尝试在“main-app”模块上执行同步Grails设置。 - Sergey
导入功能在处理inPlace插件方面很糟糕!请参阅以下逐步指南,了解如何在IntelliJ中设置inplace插件和主应用程序 :) - Hoof
2个回答

1
使用IntelliJ IDEA 12 Ultimate非常容易:
“文件” --> “导入项目…” --> 选择您的grails应用程序,“确定” --> 选择“从现有源代码创建项目”,“下一步” --> “下一步” --> “下一步” --> 选择JDK,“下一步” --> 选择grails版本,“下一步” --> “完成”
就地插件将自动添加为模块。 结果:http://d.pr/i/YHkk

0

在类似的情况下,以下方法对我非常有效:

  1. 确保本地插件的引用正确:

    grails.plugin.location.MyPlugin= "../plugins/MyPlugin"

  2. 首先创建一个空项目 - 即没有模块!

  3. 不要导入或以任何其他方式“自动生成”ipr文件

  4. 重要!从您的“依赖图”中开始使用较低的插件

  5. 单击文件->新建模块

  6. 选择grails模块

  7. 将“内容根目录”指向您的插件根目录(模块名称应自动填充)

  8. 重复5-7直到没有更多插件

  9. 最后创建一个主应用程序模块,方法与5-7类似

这对我来说适用于比两个插件更多的插件!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接