Gradle - 休眠工具不起作用



我正在尝试创建一个任务来将cfg转换为sql,并且正在使用hibernate 3。

我的蚂蚁任务看起来像这样——

ant {
    taskdef(name: 'hibernateTool',
    classname: 'org.hibernate.tool.ant.HibernateToolTask',
    classpath: configurations.hibernatetool.asPath
    )
    hibernateTool(destdir: 'resources/b2c/hibernate/schema') {
    annotationconfiguration(configurationfile:      'resources/b2c/hibernate/hibernate.b2c.cfg.xml')
    hbm2ddl(export: true, outputfilename: 'db-b2c-update-ddl.sql')
    classpath {
        pathelement(path: 'classes')
        fileset(dir: '../intl_lib') {
        include(name: '*/.jar')
    }
    }
}
}

我为此添加了以下依赖项 -

dependencies {
    hibernatetool group: 'org.hibernate', name: 'hibernate-tools', version: '3.2.4.GA'
    hibernatetool group: 'org.hibernate', name: 'hibernate-entitymanager', version: '3.6.10.Final'
}

应用的插件 -

plugin: id "org.hibernate.gradle.tools" version "1.2.3"

将配置设置为 -

configurations {
    hibernatetool
}

我在运行任务时收到以下错误 -

[ant:hibernateTool] SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
[ant:hibernateTool] SLF4J: Defaulting to no-operation (NOP) logger implementation
[ant:hibernateTool] SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

这是相同的堆栈跟踪 -

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1366)
at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1315)
at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1068)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 165 more

任何这方面的线索都值得赞赏。

添加以下依赖项应该可以解决与 slf4j 相关的上述问题。

Hibernatetool 组: 'org.slf4j', 名称: 'slf4j-simple', 版本: '1.6.6'
Hibernatetool Group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.6.6'

还需要添加此log4j依赖项才能修复java.lang.NoClassDefFoundError:org/apache/log4j/Priority此错误。

Hibernatetool 组: 'log4j', 名称: '

log4j', 版本: '1.2.17'

我想知道您是否没有指向正确的存储库。如果您查看 Gradle 插件门户页面的休眠,则会提供以下构建信息。我不确定您使用的是哪个 Gradle 版本,因此我将提供"所有"版本构建。

gradle.build

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.org.hibernate.gradle.tools:hibernatetools-gradle-plugin:1.2.3"
  }
}
apply plugin: "org.hibernate.gradle.tools"

此构建不仅会显式定义插件,还会明确定义要从中下载插件的存储库。请尝试这种应用Hibernate插件的方法,看看您的问题是否已解决。

相关内容

  • 没有找到相关文章

最新更新