我正在审查我试图在 Jboss AS 7.1.1 上运行的旧项目的 pom.xml。这个 pom 包含很多依赖项,其中包含以下工件:
- 休眠核心
- 休眠验证器
- hibernate-jpa-2.0-api
- 休眠实体管理器
- ...
由于 Jboss 7.1.1 有一个模块org.hibernate
,我设法删除了这些依赖项,除了通过以下内容hibernate-core
创建:\META-INF\jboss-deployment-structure.xml
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
<deployment>
<dependencies>
<module name="org.hibernate"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
所以为了能够编译WAR文件,我需要有这个依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
但我不明白为什么我不能用provided
范围设置它。如果它包含在org.hibernate
模块中,为什么我不能这样做?如果我将其设置为provided
,我会收到以下错误:
Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
我想用provided
范围设置它只是为了将它从 WAR 文件中排除