【问题标题】:Maven: javaee-api vs jboss-javaee-6.0Maven:javaee-api 与 jboss-javaee-6.0
【发布时间】:2013-03-09 05:29:23
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: java maven jboss dependencies java-ee-6


    【解决方案1】:

    标准 api 已失效,即。 e.缺少方法主体。测试时会出现这种情况。我曾经遇到过这个陷阱,并对此不太满意。

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

    您可以仔细查看Adam Biens Blog

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

    对于测试方面的问题,您可以查看this thread

    编辑:
    顺便说一句,因为现在这可能很有趣。对于 Java EE 7 (source)

    的 javaee-(web-)api,此问题已解决

    【讨论】:

    • 请注意,org.jboss.spec 依赖项只是 API 依赖项。它们不会以任何方式将您与 JBoss 平台联系起来。
    • 供以后参考 - 这个悖论经常出现以下错误。 java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file
    【解决方案2】:

    第一个解决java-api依赖的方法是正确的:理想情况下你的应用程序不应该关心它工作的服务器环境。对于单元测试,您可以使用Arquillian,它可以帮助您在“家”中轻松测试企业 bean。如果您使用的是 jboss-javaee,您确定您的应用程序将在另一台服务器上部署并正常工作,而不是 jboss?

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2017-07-16
      • 2013-05-23
      • 2018-08-19
      相关资源
      最近更新 更多