代码之家  ›  专栏  ›  技术社区  ›  Stefan Kendall

开始休眠3.5-Ant任务出现问题

  •  5
  • Stefan Kendall  · 技术社区  · 14 年前

    我正在努力通过“开始冬眠3.5”,我遇到了一个最初的障碍。

    当我跑步时 ant exportDDL ,我得到以下错误:

    exportDDL:
       [htools] Executing Hibernate Tool with a Hibernate Annotation/EJB3 Configuration
       [htools] 1. task: hbm2ddl (Generates database schema)
       [htools] SLF4J: The requested version 1.6 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
       [htools] SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
       [htools] An exception occurred while running exporter #2:hbm2ddl (Generates database schema)
       [htools] To get the full stack trace run ant with -verbose
       [htools] Problems in creating a AnnotationConfiguration. Have you remembered to add it to the classpath ?
       [htools] java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
    
    BUILD FAILED
    C:\hibernate\project\build.xml:30: Problems in creating a AnnotationConfiguration. Have you
    remembered to add it to the classpath ?
    

    使用以下Ant任务:

    <target name="exportDDL" depends="compile">
        <mkdir dir="${sql}"/>
        <htools destdir="${sql}">
            <classpath refid="classpath.tools"/>
            <annotationconfiguration
                    configurationfile="${src}/hibernate.cfg.xml"/>
            <hbm2ddl drop="true" outputfilename="sample.sql"/>
        </htools>
    </target>
    <target name="compile">
        <javac srcdir="${src}" destdir="${bin}" classpathref="classpath.base"/>
    </target>
    

    这是怎么回事? ant compile 很好,但是 exportDDL 任务没有。sl4j jar在类路径上,我下载了 slf4j-simple-1.6.1.jar . 思想?

    2 回复  |  直到 13 年前
        1
  •  18
  •   Arthur Ronald    14 年前

    这里解决了你想要的问题

    混合不同版本的slf4j工件可能会导致问题 . 例如,如果您使用的是slf4j-api-1.6.1.jar,那么您还应该使用slf4j-simple-1.6.1.jar,使用slf4j-simple-1.5.5.jar将不起作用。

    通常,您应该确保slf4j API版本与slf4j绑定的版本相匹配。 .

    在初始化时,如果slf4j怀疑可能存在版本不匹配问题,它将发出有关可疑不匹配的警告。有关版本不匹配检测机制的详细信息,请参阅常见问题解答中的相关条目。

        2
  •  3
  •   Ed S.    13 年前

    下面是一个例子,当您有不兼容的SLF4J版本时,我遇到了SLF4J启动警告:

    slf4j:您的slf4j绑定请求的版本1.5.10与[1.6]不兼容。 SLF4J:见 http://www.slf4j.org/codes.html#version_mismatch 更多详情。