我有一个引用Java库的Grail应用程序(作为IntelliJ模块依赖项)。这是有效的,但只要我将hibernate添加为Java库的依赖项,Grails将不再运行。
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模块中,我正在使用以下内容添加hibernate:
<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启动时的一个问题。
建议?
答案 0 :(得分:2)
将对java库的依赖关系返回到BuildConfig.groovy并使用IDEA的最新版本:http://confluence.jetbrains.net/display/IDEADEV/IDEA+11.1+EAP。导航应该可以正常工作。
答案 1 :(得分:0)
经过实验,我偶然发现以下情况似乎工作得很好(至少在IDEA 11.1中):
模块依赖项为您提供:
BuildConfig参考为您提供:
如果你选中了--classpath选项,那么你就会弄清楚grails解析它的依赖关系的方式。可能有更好的方法来做到这一点,但我还没有找到它。
附加说明
grails和maven的交互中存在一个错误,如果没有更改pom.xml,则会导致grails不从本地Maven 3存储库中提取依赖关系。
因此,我们的完整依赖项刷新周期如下所示:
只有在对上游Java库进行更新时才需要执行此操作。
从Jet Brains向谢尔盖提示跟踪那个人。