java - Hibernate 3 maven 插件 hbm2ddl 非常慢

标签 java hibernate maven jpa

我正在使用 hibernate 3 maven 插件使用 JPA 实体为我的架构生成 DDL。一切正常,但插件执行大约需要 3-4 分钟才能执行。

Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/user15273/.m2/repository/org/slf4j/slf4j- nop/1.6.1/slf4j-nop-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/user15273/.m2/repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
[INFO] Executed tasks

我尝试使用 -X 标志运行 Maven,以查看在打印以下输出后它在哪里卡住了一段时间。

    main:
    Class org.hibernate.tool.ant.HibernateToolTask loaded from parent loader (parentFirst)
     +Datatype hibernatetool org.hibernate.tool.ant.HibernateToolTask
        [mkdir] Created dir: C:\user15273\MySource\Workspace\NewSourceCode\Entity\target\sql\hibernate3
    [hibernatetool] Executing Hibernate Tool with a JPA Configuration
    [hibernatetool] 1. task: hbm2ddl (Generates database schema)
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/C:/Users/user15273/.m2/repository/org/slf4j/slf4j-nop/1.6.1/slf4j-nop-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/C:/Users/user15273/.m2/repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    Class org.hibernate.ejb.Ejb3Configuration loaded from parent loader (parentFirst)
    Couldn't load ResourceStream for commons-logging.properties
    ResourceStream for META-INF/services/org.apache.commons.logging.LogFactory loaded from parent loader
    Class org.apache.commons.logging.impl.SLF4JLogFactory loaded from parent loader (parentFirst)
    Couldn't load ResourceStream for hibernate.properties
    Couldn't load ResourceStream for META-INF/services/javax.xml.parsers.DocumentBuilderFactory
    Class com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.xs.ExtendedSchemaDVFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl loaded from parent loader (parentFirst)
    Class com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl loaded from parent loader (parentFirst)

有人知道如何找出这一延迟的原因或如何解决这个问题吗? TIA。

最佳答案

我现在已经解决了这个问题。分析maven进程的线程转储,发现线程在套接字连接上处于WAITING状态。经过更多分析,我发现这是 xerces 类试图下载持久性 XSD。

由于我没有使用具有该 XSD 的 Hibernate 实体 jar 版本,因此我必须手动将 XSD 放入项目结构中。现在构建时间又回到了几分钟。

关于java - Hibernate 3 maven 插件 hbm2ddl 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20161126/

相关文章:

java - 使用来自静态 Web 服务端点调用的响应,稍后在其他一些 Web 服务端点调用中使用

java - 如何使用我的 ID 保存实体

java - 将文件从单元测试保存到项目树

java - 在自定义 Maven 原型(prototype)中使用的 JCodeModel

Java 可重入锁和条件 |生产者完成工作,消费者陷入困境

java - Jackson JsonView 和 JsonTypeInfo

java - Hibernate 5 字节码增强关联管理仅朝一个方向工作

java - 如何在运行 Maven 测试时优化 CPU 利用率

java - 如何使 spring boot 嵌入式 tomcat 为基本 url 返回 200 OK?

arrays - 如何修复 Hibernate org.hibernate.MappingException : No Dialect mapping for JDBC type: 2003