Maven的:JavaEE的-API和JBoss的-的JavaEE 6.0(Maven: javae

2019-07-22 02:31发布

我想使用Maven构建一个Java JEE6的项目,我想它的标准

于是,我把这个在我的pom.xml:

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

像这样的项目,它应该是在每一个JEE6容器兼容运行(JBoss的,Geronimo的,glashfish等)

那么,为什么这个JBoss的依赖关系的存在?

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>3.0.2.Final</version>
    <scope>provided</scope>
 </dependency>

如果我使用它,我是绑到JBoss,所以我只能用这种服务器与此应用程序?

这难道不是最好总是使用标准的JavaEE的API?

谢谢!

Answer 1:

标准API是残缺的,即方法体丢失。 测试时,这证明。 我曾经碰到这个陷阱,是不是很快乐。

因此,这是advisiable使用另一个包作为参考。

你可以有一个仔细看看亚当财产共有制博客

您也可以针对不同的部署环境的配置文件,如果你真正需要的。 然而,本质上我同意,这是可悲的是不是一个非常愉快的环境。

另外,具有测试问题,你可以看看这个线程 。

编辑:
顺便说一句,因为现在这可能是interessting。 此问题已一去不复返了对Java EE 7的javaee-(基于web)API( 源 )



Answer 2:

与Java的API的依赖第一个解决方案是正确的方式:你在理想的情况下,应用程序不应在什么它的工作原理来关心服务器环境。 对于单元测试,你可以使用的Arquillian ,它可以帮助您在“家”测试企业Bean无头痛。 如果您使用的jboss-JavaEE的,你确定,你的应用程序将部署和另一台服务器上工作得很好,比JBoss的?



文章来源: Maven: javaee-api vs jboss-javaee-6.0