Maven: javaee-api vs jboss-javaee-6.0



我想要一个用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不是更好吗?

谢谢!

标准api被破坏,即缺少方法体。这在测试时得到证实。我曾经遇到过这个陷阱,并不是很满意。

因此,建议使用另一个包作为参考。

你可以在Adam Biens Blog上仔细看看

如果确实需要,您还可以为不同的部署环境创建概要文件。然而,从本质上讲,我同意,这不是一个很令人愉快的情况。

如果你在测试中遇到问题,你可以看看这个线程。

编辑:
顺便说一下,现在这个可能很有趣。javaee-(web-)api用于Java EE 7 (source)

java-api依赖的第一个解决方案是正确的:在理想情况下,应用程序不应该关心它工作的服务器环境。对于单元测试,您可以使用Arquillian,它可以帮助您在"家里"测试企业bean,而不会让您感到头痛。如果您使用的是jboss-javaee,那么您确定您的应用程序将在jboss以外的其他服务器上部署并正常工作吗?

最新更新