2017-10-06 65 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