Maven:javaee-api vs jboss-javaee-6.0

dav*_*365 13 java jboss dependencies maven java-ee-6

我想要一个用maven构建的Java JEE6项目,我希望它是标准的

所以,我把它放在我的pom.xml中:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

像这样的项目,它应该在兼容的每个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>
Run Code Online (Sandbox Code Playgroud)

如果我使用它,我是否绑定到jboss所以我只能在这个应用程序中使用此服务器?

始终使用标准javaee-api不是更好吗?

谢谢!

omi*_*lke 21

标准api被削弱,即缺少方法体.测试结果证明了这一点.我曾经遇到过这个陷阱,对此并不满意.

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

你可以仔细看看Adam Biens博客

如果确实需要,您还可以为不同的部署环境创建配置文件.但是,基本上我同意,遗憾的是这不是一个非常令人愉快的情况.

对于测试问题,您可以查看此主题.

编辑:
顺便说一下,从现在开始这可能是非常有意义的.对于Java EE 7的javaee-(web-)api,这个问题已经消失了(来源)

  • 注意`org.jboss.spec`依赖项只是API依赖项.他们不会以任何方式绑定JBoss平台. (4认同)