2017-10-06 52 views
0

嗯,我正在努力跟随甲骨文JSR和在我的项目只使用规范。我使用JBOSS EAP 7作为服务器应用程序。只能使用JSR API在我的pom.xml

1) 我有冬眠的依赖在我的项目:

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

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

2) 又如:我使用的是CDI,并在项目中,我焊缝为实现CDI的:

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

我应该代替它的CDI-API的依赖,并让需要的JBoss关心实施?

什么是跟随JSR和实现走正确的方法是什么?

+0

据我要坚持,你应该使用JPA。这样你只需要在你的项目中定义'jpa'依赖项,并且如果你正在'jboss as7'中部署应用程序,就不需要定义'hibernate'依赖项。这就是'jboss as7'如何检测'jpa'''检测到JPA的使用(例如persistence.xml或@ PersistenceContext/Unit注释),并将Hibernate依赖注入到应用程序部署中。“您可以参考更多[here](https: //docs.jboss.org/author/display/AS7/JPA+Reference+Guide) –

+0

我想让一个pom部署到很多服务器应用程序(JBoss,glassfish ...) – RonaldoLanhellas

+0

在这种情况下,您将不得不添加'jpa provider'实现,你必须在'jboss as7'情况下排除jpa检测(部署时)。 –

回答

0

我还没有使用的JBoss EAP 7;但从其功能列表中,它应该实现Java EE 7完整配置文件。如果是这样的话,所有你需要的是以下Maven依赖性:

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

这应该只要你上的全功能的应用服务器中的一个(Wildfly/JBoss的,Glassfish的,的Websphere部署应用程序的工作,。 ..)支持的Java EE 7

+0

非常有用。通过这种方式,我创建了一个独立于容器的pom。 – RonaldoLanhellas