如何替换使用GGTS/Eclipse创建的Grails项目中的依赖项?
我是Grails新手,我想问一些人如何替换Grails项目中的依赖项(使用GGTS/Spring工具套件/Eclipse) 基本上,我问这个问题是因为我在grails项目中尝试使用grails的Vaadin插件时遇到了这个问题(这是GitHub->上的问题) 我有下面的grails插件,它使用了hibernate依赖项的如何替换使用GGTS/Eclipse创建的Grails项目中的依赖项?,grails,vaadin,dependency-management,vaadin7,hibernate-validator,Grails,Vaadin,Dependency Management,Vaadin7,Hibernate Validator,我是Grails新手,我想问一些人如何替换Grails项目中的依赖项(使用GGTS/Spring工具套件/Eclipse) 基本上,我问这个问题是因为我在grails项目中尝试使用grails的Vaadin插件时遇到了这个问题(这是GitHub->上的问题) 我有下面的grails插件,它使用了hibernate依赖项的5.1.1.Final版本(它从我本地的.m2 Maven存储库中获取,在grails依赖项报告的一段代码下面) 休眠: +--- org.grails.plugins:hibe
5.1.1.Final
版本(它从我本地的.m2 Maven存储库中获取,在grails依赖项报告的一段代码下面)
休眠:
+--- org.grails.plugins:hibernate4:4.3.6.1
| \--- org.hibernate:hibernate-validator:5.1.1.Final
此外,我还使用:
Grails的Vaadin插件:
org.grails.plugins:vaadin:7.3.9
| \--- com.vaadin:vaadin-client:7.3.9
| \--- com.vaadin:vaadin-shared:7.3.9
| \--- com.vaadin.external.flute:flute:1.3.0.gg2
| \--- com.vaadin.external.streamhtmlparser:streamhtmlparser-jsilver:0.0.10.vaadin1
| \--- com.vaadin.external.google:guava:16.0.1.vaadin1
| \--- com.vaadin.external.json:json:0.0.20080701
| \--- org.w3c.css:sac:1.3
| \--- javax.validation:validation-api:1.0.0.GA
| \--- javax.validation:validation-api:1.0.0.GA
下面是BuildConfig.groovy
文件中的插件条目:
plugins {
...
// this is the line I added
compile ":vaadin:7.3.9"
...
// This line is created automatically by the new project wizard
runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18"
}
如您所见,Vaadin插件使用的是javax。验证:验证api:1.0.0.GA
,但grails默认使用的Hibernate版本是最新版本(5.1.1.Final),这与javax不兼容。验证:验证api:1.0.0.GA
。相反,要么将hibernate validator降级到4.x.x版本,要么将javax.validation库从validation api:1.0.0.GA
升级到validation api:1.1.0。最终的
我发现我可以切换Hibernate grails插件的版本(正如BuildConfig.groovy中建议的那样):
这将有效地为Grails安装Hibernate 3
,它使用Hibernate-validator-4.1.0.Final
而不是5.1.1.Final
,因此它应该与javax.validation 1.0.0兼容,但我仍然得到了一个错误,我在这个问题开始时在GitHub上打开了这个问题的链接
现在,由于Hibernate 3 for Grails使用了4.1.0.Final
,我只能认为我可以尝试使用Hibernate-validator-4.3.1.Final
(我已经下载了.jar),看看会发生什么,或者以某种方式替换与Vaadin Grails插件一起安装的验证api:1.0.0.GA
,然后使用Hibernate 5.1.1.Final再试一次
但是我如何安全地替换这些依赖项而不破坏任何东西呢?
或者,更好的是,是否有人在Grails的Vaadin插件中遇到了同样的问题,您是否提供了更好的解决方案
谢谢你的关注。希望一次性解决这个小问题。感谢用户在GitHub上对同一问题的评论:
我通过将运行时]:hibernate4:4.3.6.1“
替换为稍旧的版本运行时]:hibernate4:4.3.5.5“
解决了这个问题
plugins {
...
// this is the line I added
compile ":vaadin:7.3.9"
...
runtime ":hibernate:3.6.10.18" // instead of default ":hibernate4:4.3.6.1"
}