如何替换使用GGTS/Eclipse创建的Grails项目中的依赖项?

如何替换使用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

我是Grails新手,我想问一些人如何替换Grails项目中的依赖项(使用GGTS/Spring工具套件/Eclipse)

基本上,我问这个问题是因为我在grails项目中尝试使用grails的Vaadin插件时遇到了这个问题(这是GitHub->上的问题)

我有下面的grails插件,它使用了hibernate依赖项的
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"
 }