如何在Grails项目(IntelliJ模块依赖项)的依赖项中使用Hibernate?
我有一个引用Java库(作为IntelliJ模块依赖项)的Grail应用程序。这可行,但只要我将hibernate添加为Java库的依赖项,Grails将不再运行。如何在Grails项目(IntelliJ模块依赖项)的依赖项中使用Hibernate?
Loading Grails 2.0.1
Error Error executing script RunApp: Provider for javax.xml.parsers.SAXParserFactory cannot be found (Use --stacktrace to see the full trace)
在我的Java模块,我加入休眠下列要求:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.0.Final</version>
</dependency>
我看不到解决这个没有什么好的办法。 Grails依赖关系报告没有显示任何冲突的库。如果hibernate插件安装在Grails应用程序中,则会发生错误。
请记住,(在这种情况下)Java库是
而不是通过BuildConfig.groovy合并。它正在作为一个IntelliJ模块依赖项被合并。如果我通过BuildConfig.groovy将模块作为jar包装,那么一切正常,但我失去了进入Java代码的能力。
澄清:
每JetBrains的人们,Java库被结合既作为的IntelliJ模块的依赖和在BuildConfig.groovy。从命令行执行时,项目起作用,这只是从IDE启动时的一个问题。
对此提出建议?
实验后,我在这似乎(在IDEA 11.1至少)是工作得非常好以下跌跌撞撞:
(我们使用Maven- 你的Java库JAR应该从 BuildConfig.groovy引用,所以我们必须添加本地Maven 回购以及)
- 还引用了你的模块如Grails的模块
- 的模块依赖(这是关键),在运行配置为你的Grails项目,取消选中“添加 - -classpath ...“选项
模块依赖为您提供:对于步入从你的Grails项目中的Java代码的Java类,并从Grails项目的方法
- 直觉意识
- 支持。
的BuildConfig参考给你:
- 为Grails的命令,包括运行应用程序的支持(这是运行/调试项目时的IntelliJ如何踢东西了)
如果你离开了--classpath选项,然后你弄糟了grails解决它的依赖的方式。可能有更好的方法来做到这一点,但我没有找到它。
附注
有一个在Grails和行家的导致的Grails如果pom.xml中没有改变的依赖关系,拉不从本地Maven 3个库交互的错误。
因此,我们完全依赖更新周期是这样的:
- 返回顶部
- MVN全新安装
- 发现在回购相关的POM文件,并触摸这些
- 回的Grails应用程序目录和grails刷新依赖关系
- 运行应用程序
只有在上游Java库有更新时才需要执行此操作。
帽子提示来自Jet Brains的Sergey,以便跟踪那一个。
将依赖的Java库返回到BuildConfig.groovy并使用最新版本的IDEA:http://confluence.jetbrains.net/display/IDEADEV/IDEA+11.1+EAP。导航应该正常工作。
我更新了问题,以反映即使在两个地方的依赖关系,应用程序也不会启动。 – 2012-03-28 14:16:12
您是否尝试从IntelliJ以外的命令行运行grails?这很可能是IntelliJ传入模块依赖项时的类路径冲突,以及grails如何引入它。 – cdeszaq 2012-03-20 14:12:25
这绝对是类路径冲突。如果我从命令行运行,一切正常。当然,如果你想调试,它有助于从IDE运行。 – 2012-03-22 15:08:50