在我的 pom.xml 中仅使用 JSR api

Use only JSR api in my pom.xml

好吧,我正在尝试遵循 Oracle JSR 并在我的项目中仅使用规范。我正在使用 JBOSS EAP 7 作为服务器应用程序。

1) 我的项目有休眠依赖:

 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.core.version}</version>
        </dependency>

这是遵循规范 (JSR) 的正确方法吗?或者我应该只设置 JPA 依赖而没有任何休眠依赖,让 jboss 处理它?

2) 另一个例子:我正在使用 CDI,在我的项目中,我将 WELD 作为 CDI 的实现:

 <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-core-jsf</artifactId>
            <version>2.3.3.Final</version>
        </dependency>

我是否应该将其替换为 CDI-API 依赖项并让 jboss 负责实施?

遵循 JSR 并远离实现的正确方法是什么?

我没用过JBoss EAP 7;但从它的功能列表来看,它应该实现 Java EE 7 完整配置文件。如果是这样,您只需要以下 Maven 依赖项:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
    <scope>provided</scope>
</dependency>

只要您将应用程序部署在支持 Java EE 7 的全功能应用程序服务器(Wildfly/JBoss、Glassfish、Websphere 等)之一上,这就应该有效。