我正在尝试创建一个将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
对此有任何线索表示赞赏。
答案 0 :(得分:0)
我想知道你是否没有指向正确的存储库。如果您检查Hibernate的Gradle Plugin Portal页面,则会提供以下构建信息。我不确定您使用的是哪个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插件,看看您的问题是否已解决。
答案 1 :(得分:0)
添加以下依赖项应解决与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'