Java Spring升级5.3.5导致ClassCastException AttributeConverterTypeAdapter无法强制转换为org.hibernate.type.VersionType

Java Spring升级5.3.5导致ClassCastException AttributeConverterTypeAdapter无法强制转换为org.hibernate.type.VersionType,java,spring,spring-boot,hibernate,jpa,Java,Spring,Spring Boot,Hibernate,Jpa,我正在尝试用hibernate版本5.4.30.Final将Spring升级到5.3.5使用的依赖项是: ----Attempt1---------- <m.spring>5.1.6.RELEASE</m.spring> <m.hibernate>5.1.6.Final</m.hibernate> -----> x --Attempt2------------------------------- <spring-framework-

我正在尝试用hibernate版本5.4.30.Final将Spring升级到5.3.5使用的依赖项是:

----Attempt1----------
<m.spring>5.1.6.RELEASE</m.spring>
<m.hibernate>5.1.6.Final</m.hibernate>  -----> x
--Attempt2-------------------------------
<spring-framework-bom.version>5.2.2.RELEASE</spring-framework-bom.version>
<m.hibernate>5.1.6.Final</m.hibernate> ---------------> x
---Attempt3------------------------------
<spring-framework-bom.version>5.3.5</spring-framework-bom.version>
<m.hibernate>5.4.30.Final</m.hibernate>
--Attempt4-----------------------------
<m.spring>5.3.0</m.spring>
<m.hibernate>5.2.0.Final</m.hibernate>
<m.hibernate.em>5.2.1.Final</m.hibernate.em>
--------------------------------------- 
<dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${m.spring}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${m.spring}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${m.spring}</version>
            </dependency>
            
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${m.spring}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${m.spring}</version>
            </dependency>
            
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${m.hibernate}</version>
            </dependency>

            <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${m.hibernate.em}</version>
        </dependency>
2021-04-15:18-51-35.0208 WARN svc:application   org.hibernate.cfg.AnnotationBinder#bindClass:541 - HHH000503: A class should not be annotated with both @Inheritance and @MappedSuperclass. @Inheritance will be ignored for: com.covisint.core.http.service.core.AbstractResource. [||||]
2021-04-15:18-51-35.0220 WARN svc:application   org.hibernate.cfg.AnnotationBinder#bindClass:541 - HHH000503: A class should not be annotated with both @Inheritance and @MappedSuperclass. @Inheritance will be ignored for: com.covisint.core.http.service.core.AbstractRealmScopedResource. [||||]
2021-04-15:18-51-35.0414 WARN svc:application   org.hibernate.type.descriptor.java.JavaTypeDescriptorRegistry#checkEqualsAndHashCode:144 - HHH000481: Encountered Java type [class java.lang.Object] for which we could not locate a JavaTypeDescriptor and which does not appear to implement equals and/or hashCode.  This can lead to significant performance problems when performing equality/dirty checking involving this Java type.  Consider registering a custom JavaTypeDescriptor or at least implementing equals/hashCode. [||||]

2021-04-15:18-51-35.0448 WARN svc:application   org.hibernate.type.descriptor.java.JavaTypeDescriptorRegistry#checkEqualsAndHashCode:144 - HHH000481: Encountered Java type [class java.lang.Object] for which we could not locate a JavaTypeDescriptor and which does not appear to implement equals and/or hashCode.  This can lead to significant performance problems when performing equality/dirty checking involving this Java type.  Consider registering a custom JavaTypeDescriptor or at least implementing equals/hashCode. [||||]
2021-04-15:18-51-35.0809 ERROR svc:application   org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean#buildNativeEntityManagerFactory:426 - Failed to initialize JPA EntityManagerFactory: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister [||||]
2021-04-15:18-51-35.0812 WARN svc:application   org.springframework.web.context.support.XmlWebApplicationContext#refresh:591 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'emf' defined in URL [file:/C:/Users/anujs/Downloads/application_wsp/application/webapp/target/classes/spring-persistence.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister [||||]
2021-04-15:18-51-35.0812 WARN svc:application   org.springframework.web.context.support.XmlWebApplicationContext#refresh:591 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'emf' defined in URL [file:/C:/Users/anujs/Downloads/application_wsp/application/webapp/target/classes/spring-persistence.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister [||||]
2021-04-15:18-51-35.0823 ERROR svc:application   org.springframework.web.context.ContextLoader#initWebApplicationContext:313 - Context initialization failed [||||]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'emf' defined in URL [file:/C:/Users/anujs/Downloads/application_wsp/application/webapp/target/classes/spring-persistence.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
    at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:959)
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:924)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:365)
    at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
    at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:360)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:854)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
    at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:428)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:167)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:119)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:167)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:119)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:167)
    at org.eclipse.jetty.server.Server.start(Server.java:418)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
    at org.eclipse.jetty.server.Server.doStart(Server.java:382)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:477)
    at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:343)
    at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:171)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1845)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
    ... 63 more
Caused by: org.hibernate.MappingException: Could not instantiate persister org.hibernate.persister.entity.SingleTableEntityPersister
    at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:112)
    at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:77)
    at org.hibernate.metamodel.internal.MetamodelImpl.initialize(MetamodelImpl.java:181)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:303)
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:468)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1259)
    at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:141)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409)
    ... 67 more
Caused by: java.lang.ClassCastException: org.hibernate.type.descriptor.converter.AttributeConverterTypeAdapter cannot be cast to org.hibernate.type.VersionType
    at org.hibernate.tuple.PropertyFactory.buildVersionProperty(PropertyFactory.java:111)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:222)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:609)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:128)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:96)
    ... 75 more

对于初学者来说,
hibernate core
hibernate entitymanager
版本必须匹配,否则可能会遇到兼容性问题。您还应该注意关于
@MappedSuperclass
/
@heritation
的警告,它们在同一类上不可用。选择一个。@M.Deinum感谢您指出,您的两个建议都已实现,但得到了相同的Classcastexception。您只发布了依赖项的一个片段,因此可能还有另一个依赖项是罪魁祸首。但您只发布了几条。@M.Deinum当然,我现在用hibernate实体持有者模块的依赖关系树更新了这个问题(它是一个多模块项目)
/**
 * Base class for {@link Resource} implementations.
 * 
 * @param <T> the type of resource
 */
@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractResource<T extends Resource> implements Resource {

    /** Serial version UID. */
    private static final long serialVersionUID = -9220615487126078224L;

    /** Unique ID for this resource. */
    @Searchable
    @Id
    @Column(name = "ID", nullable = false, length = 64, updatable = false, unique = true)
    private String id;

    /** Current version of this resource record. */
    @Version
    @Column(name = "VERSION", nullable = false)
    private Long version;

    /** Creator of this version of this resource record. */
    @Column(name = "CREATOR", nullable = false, length = 64)
    private String creator;

    /** Creation instant, in milliseconds since the epoch, of this version of this resource record. */
    @Sortable
    @Searchable
    @Column(name = "CREATION_INSTANT", nullable = false, scale = 10)
    private long creation;

    /** The ID of the application the creator used to create this resource. */
    @Column(name = "CREATOR_APPLICATION_ID", nullable = false, length = 64)
    private String creatorApplicationId;

    /**
     * Default Constructor.
     *
     */
    public AbstractResource() {
        // Initialize the creation instant to current System.currentTime
        setCreationInstant(System.currentTimeMillis());
    }

    /** {@inheritDoc} */
    @Nullable
    public final String getId() {
        return id;
    }

    /**
     * Sets the ID for this resource. This ID should be unique in time and space (i.e., no other process running on any
     * other machine at any time should generate the same ID). It is strongly recommended to use a type 4 UUID (see
     * {@link java.util.UUID#randomUUID()}) to generate IDs.
     * 
     * @param newId ID for this resource
     * 
     * @return this object
     */
    public final T setId(@Nullable final String newId) {
        id = newId;
        return (T) this;
    }

    /** {@inheritDoc} */
    @Nullable
    public final Long getVersion() {
        if (version == 0L) {
            return 0L;
        }
        return version;
    }

    /**
     * Sets the current version for this resource.
     * 
     * @param newVersion the current version for this resource
     * 
     * @return this object
     */
    public final Long setVersion(@Nullable final Long newVersion) {
        //version = Longs.tryParse(StringSupport.trimOrEmpty(newVersion));

        if (newVersion == 0L) {
            // We have a non-numeric version. Have to be forgiving here for old riak-stored resources.
            return 1L;
        }

        return newVersion;
    }

    /** {@inheritDoc} */
    @Nullable
    public final String getCreator() {
        return creator;
    }

    /**
     * Sets the creator of the current version of this resource.
     * 
     * @param newCreator creator of the current version of this resource
     * 
     * @return this object
     */
    public final T setCreator(@Nonnull @NotEmpty final String newCreator) {
        creator = newCreator;
        return (T) this;
    }

    /** {@inheritDoc} */
    public final long getCreationInstant() {
        return creation;
    }

    /**
     * Sets the instant, in milliseconds since the epoch, that this version of this resource was created.
     * 
     * @param instant instant that this version of this resource was created
     * 
     * @return this object
     */
    public final T setCreationInstant(final long instant) {
        creation = instant;
        return (T) this;
    }

    /** {@inheritDoc} */
    @Nullable
    public final String getCreatorApplicationId() {
        return creatorApplicationId;
    }

    /**
     * Sets the ID of the application the creator used to create this resource.
     * 
     * @param creatorId ID of the application the creator used to create this resource
     * 
     * @return this object
     */
    public final T setCreatorApplicationId(@Nonnull @NotEmpty String creatorId) {
        creatorApplicationId = creatorId;
        return (T) this;
    }

    /**
     * Helper method that provides a hash code over a resource's identity fields: id, version.
     * 
     * @return the hash code based on the resource's identity fields
     */
    protected final int getResourceIdentityHashCode() {
        return Objects.hashCode(getId(), getVersion());
    }

    /**
     * Helper method that determines if an object is equal to this resources based on its identity fields: id, version.
     * 
     * @param resourceType the type of the resource
     * @param obj the object to check for equality
     * 
     * @return true if the objects are equality, false otherwise
     */
    protected final boolean isResourceIdentityEqual(Class<T> resourceType, Object obj) {
        if (obj == null) {
            return false;
        }

        if (obj == this) {
            return true;
        }

        if (!resourceType.isInstance(obj)) {
            return false;
        }

        final T other = (T) obj;
        return Objects.equal(getId(), other.getId()) && Objects.equal(getVersion(), other.getVersion());
    }

    /**
     * Adds the fields of this class to the helper.
     * 
     * @param helper helper to which the fields will be added
     * 
     * @return the populated helper
     */
    protected ToStringHelper populateToStringHelper(ToStringHelper helper) {
        return helper.add("id", id).add("version", version).add("creator", creator).add("creation", creation)
                .add("creatorApplicationId", creatorApplicationId);
    }
}
[INFO] Building Application HTTP Service Core Module 1.10.0.BUILD-SNAPSHOT [3/6]
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for com.google.guava:guava:jar:21.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-dependency-plugin:3.0.0:tree (default-cli) @ application-core ---
[INFO] com.mfirm.platform.application.core:application-core:jar:1.10.0.BUILD-SNAPSHOT
[INFO] +- com.mfirm.platform.application.protobuf:application-protobuf:jar:1.10.0.BUILD-SNAPSHOT:compile
[INFO] |  +- com.mfirm.core.support.protobuf:protobuf-support:jar:1.2.0.RELEASE:compile
[INFO] |  |  \- com.google.protobuf:protobuf-java:jar:3.3.1:compile
[INFO] |  \- com.mfirm.core:core-support:jar:1.1.2.RELEASE:compile
[INFO] |     \- org.aspectj:aspectjrt:jar:1.8.10:compile
[INFO] +- com.mfirm.core.http.service:http-service-core:jar:2.14.0.BUILD-SNAPSHOT:compile
[INFO] |  +- org.glassfish:javax.json:jar:1.0.4:compile
[INFO] |  +- org.owasp.esapi:esapi:jar:2.2.0.0:compile
[INFO] |  |  +- com.io7m.xom:xom:jar:1.2.10:compile
[INFO] |  |  +- commons-beanutils:commons-beanutils:jar:1.9.3:compile
[INFO] |  |  |  +- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  |  |  \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  |  +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] |  |  +- commons-fileupload:commons-fileupload:jar:1.3.3:compile
[INFO] |  |  +- org.apache.commons:commons-collections4:jar:4.2:compile
[INFO] |  |  +- org.apache-extras.beanshell:bsh:jar:2.0b6:compile
[INFO] |  |  +- org.owasp.antisamy:antisamy:jar:1.5.8:compile
[INFO] |  |  |  +- net.sourceforge.nekohtml:nekohtml:jar:1.9.22:compile
[INFO] |  |  |  +- org.apache.httpcomponents:httpclient:jar:4.4.1:compile
[INFO] |  |  |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.1:compile
[INFO] |  |  |  \- commons-codec:commons-codec:jar:1.12:compile
[INFO] |  |  +- commons-io:commons-io:jar:2.6:compile
[INFO] |  |  +- org.apache.xmlgraphics:batik-css:jar:1.11:compile
[INFO] |  |  |  +- org.apache.xmlgraphics:batik-util:jar:1.11:compile
[INFO] |  |  |  |  +- org.apache.xmlgraphics:batik-constants:jar:1.11:compile
[INFO] |  |  |  |  \- org.apache.xmlgraphics:batik-i18n:jar:1.11:compile
[INFO] |  |  |  +- org.apache.xmlgraphics:xmlgraphics-commons:jar:2.3:compile
[INFO] |  |  |  \- xml-apis:xml-apis-ext:jar:1.3.04:compile
[INFO] |  |  +- xalan:xalan:jar:2.7.2:compile
[INFO] |  |  |  \- xalan:serializer:jar:2.7.2:compile
[INFO] |  |  +- xerces:xercesImpl:jar:2.12.0:compile
[INFO] |  |  \- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] |  +- org.springframework:spring-web:jar:5.3.0:compile
[INFO] |  |  +- org.springframework:spring-beans:jar:5.3.0:compile
[INFO] |  |  \- org.springframework:spring-core:jar:5.3.0:compile
[INFO] |  |     \- org.springframework:spring-jcl:jar:5.3.0:compile
[INFO] |  +- org.hibernate:hibernate-core:jar:5.2.1.Final:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] |  |  +- org.jboss:jandex:jar:2.0.0.Final:compile
[INFO] |  |  +- com.fasterxml:classmate:jar:1.3.0:compile
[INFO] |  |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  |  +- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] |  |  \- javax.enterprise:cdi-api:jar:1.1-PFD:compile
[INFO] |  |     +- javax.el:el-api:jar:2.2:compile
[INFO] |  |     +- org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:jar:1.0.0.Beta1:compile
[INFO] |  |     +- javax.annotation:jsr250-api:jar:1.0:compile
[INFO] |  |     \- javax.inject:javax.inject:jar:1:compile
[INFO] |  \- com.google.guava:guava:jar:21.0:compile
[INFO] +- org.javassist:javassist:jar:3.25.0-GA:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.24:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.24:compile
[INFO] |  \- log4j:log4j:jar:1.2.17:compile
[INFO] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.2:compile
[INFO] +- org.testng:testng:jar:6.10:test
[INFO] |  \- com.beust:jcommander:jar:1.48:test
[INFO] +- org.mockito:mockito-all:jar:1.10.19:test
[INFO] +- com.googlecode.json-simple:json-simple:jar:1.1.1:test
[INFO] +- org.skyscreamer:jsonassert:jar:1.2.3:test
[INFO] |  \- org.json:json:jar:20090211:test
[INFO] +- com.jayway.jsonpath:json-path:jar:0.8.1:test
[INFO] |  +- net.minidev:json-smart:jar:1.1.1:test
[INFO] |  \- commons-lang:commons-lang:jar:2.6:compile
[INFO] +- junit:junit:jar:4.12:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] \- com.h2database:h2:jar:1.4.197:test