grails - 类路径中jar的不同版本

标签 grails classpath

您好,这是following question的后续问题。

我正在创建Grails插件作为复杂产品的包装。该产品与其他产品(例如休眠)有很多依赖性。问题是,grails具有某些相同的依赖关系,但具有不同的版本。例如。 Grails->休眠3.6.7其他产品->休眠3.5.6

我已经按照解决方案中的描述修改了BuildConfig.groovy:

dependencies {
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
    runtime ('org.ow2.bonita:bonita-server:5.6.1') {
        excludes "slf4j-jdk14"
    }
}

Grails已解决了所有依赖关系,并将所有必需的jar下载到本地存储库。 STS可以从依赖项解析所有类。在运行应用程序时,休眠存在问题:
Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.util.SoftLimitMRUCache.<init>(I)V

我想由于类路径中有多个休眠jar而导致错误消失。怎么解决呢?

在此先感谢!

最佳答案

您检查了精美的手册吗?

http://grails.org/doc/1.3.x/guide/3.%20Configuration.html#3.7.7%20Plugin%20JAR%20Dependencies

看来您的项目中需要较旧的休眠模式。所以我想解决方案可能是

  • 创建一个插件项目
  • 删除休眠插件
  • 将您的jar文件放入项目
  • 如文档中所述(请参见上面的链接),为休眠 jar 配置export=false
  • 关于grails - 类路径中jar的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016377/

    相关文章:

    grails - 将 Grails 应用程序从 1.3.7 升级到 Java 8 兼容版本

    grails - 上传图片到数据库

    java - 在运行时替换包中的类以解决版本冲突

    java - 类路径中带有属性文件的外部库的导入未解决

    Java javac 使用类路径编译

    grails - 在Groovy中具有一对多关系的Lucene搜索问题

    mongodb - 来自grails/groovy的mongodb通配符查询

    grails - 跟随页面上的任何链接时,Grails “loses”自定义URL映射

    gradle - 如何根据命令行参数将文件复制到WAR类路径中?

    Java 类路径和相对路径