【问题标题】:How to use Maven to make a Java EE 6 project如何使用 Maven 制作 Java EE 6 项目
【发布时间】:2011-12-23 12:55:29
【问题描述】:

我使用 Eclipse 制作了一个EJB projectDynamic Web project,然后我将它们组合成一个EAR project。现在我正在学习 Maven,我想知道您是如何管理的?

如果我使用生成 javaee6-webapp 的原型,那么根据我的理解,你会得到一个 WAR 存档……但这只能使用 JavaEE6 规范的子集。我想用整个。那么我是否需要为 javaee6-ejb 使用一个原型,为 javaee6-webapp 使用一个原型,然后以某种方式组合它们?

如果是这种情况或有其他更好的方法,我很乐意了解它。

或者 webapp 项目中的 EJB 是否由原型编译并打包为库并添加到 WEB-INF/lib 文件夹中?如果是这样,如果部署在完整的配置文件应用服务器中,它是否可以访问完整的 JavaEE6 API?

【问题讨论】:

    标签: java jakarta-ee maven


    【解决方案1】:

    This article by Adam Bien 可能对您来说很有趣。

    另外,如果我理解正确的话,你可以使用使用 WAR 部署的 Java EE 6 规范的所有商品。您可以在 WAR 中使用计时器、远程接口、异步调用等。
    这仅取决于您使用的是 Full 还是 Web Profile。

    EAR 和 WAR 打包之间几乎没有区别,但在我看来,EAR 最大的附加价值是关注点和模块的分离(来自 web 的业务逻辑)。

    【讨论】:

    • 啊,所以 WAR 不只限制您使用网络配置文件?但是,像在eclipse中那样制作单独的项目会更好吗?
    • 您应该对其进行测试,但我有 95% 的把握认为 WAR 与 EAR 的区别仅在于打包、类加载器、JNDI 等方面的差异,而不是关于完整与 Web 配置文件的差异。当然——模块(或 Eclipse 项目)分离总是很好:-)
    • 这篇文章具有误导性,如果您将 ejb.jar 放在 web-inf lib 中,请确保这些类可用,但您的服务器(通常)不知道部署 ejb 以获取它们要以这种方式部署,他将有一些特殊的服务器配置
    • @jermel 所以,你是说 @Stateless@Stateful 带注释的 POJOS 包装到 *.jar 并放入 WEB-INF/lib 将不会被应用服务器识别?或者您可能指的是ejb-jar.xml 发现?
    • @Piotr 我指的是 ejb-jar.xml 发现。
    【解决方案2】:

    为了快速开始,您还可以使用像 http://seam-archetype.sourceforge.net/jbosscc-seam-archetype/1.4/javaee.html 这样的 maven 原型

    【讨论】:

      【解决方案3】:

      你的想法是对的。

      创建所有 maven 项目,例如 ejb-javaee6、webapp-javaee6 等。 然后,如果您愿意,可以创建一个 maven ear-javaee6 项目将它们捆绑在一起。此 EAR 将引用您的 ejb 和 webapp。

      更新链接: Eclipse 有一个plugin for maven,让您的生活更轻松

      【讨论】:

      • 您的链接“pluging for maven”需要登录。
      猜你喜欢
      • 2018-06-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 2011-04-18
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多