【发布时间】:2017-12-18 10:12:11
【问题描述】:
这个故事是关于 maven 项目依赖的。我有:
- 我的项目依赖于 hibernate-core:5.2.10.Final 工件,它依赖于 hibernate-jpa-2.1-api:1.0.0.Final
- 而我的项目依赖于javaee-api:7.0
- hibernate-jpa-2.1-api:1.0.0.Final 包含 javax.persistence.* 类
- 相同的 javax.persistence.* 类包含在 javaee-api:7.0
我应该在我的项目中使用哪个依赖项以及范围?如果我将两个依赖项都保留在最终构建中,那么我将遇到类冲突。 希望应用程序可以部署到任何 JavaEE 容器,例如 Glassfish、Wildfly、JBOSS 等。
请注意,hibernate-jpa-2.1-api 不是任何 JavaEE 服务器的特定 api,也不是实现。它只是 hibernate-core 工件的 API 编译范围依赖。而且我没有手动包含此依赖项,如果我选择 Hibernate 作为 JPA 实现,那么 hibernate-jpa-2.1-api 将默认包含在构建中。
【问题讨论】:
标签: java hibernate maven jakarta-ee