【问题标题】:How Two different Maven Web project can share same EJB两个不同的 Maven Web 项目如何共享相同的 EJB
【发布时间】:2012-11-02 13:36:23
【问题描述】:

我有两个不同的基于 Maven 的 JSF Web 项目(Netbeans 和 Glassfish),一个用于管理员用户,另一个用于普通用户。我想让它们分开,因为这样更简单。实体类将是相同的,我希望这两个战争项目共享这些实体类。

这样做的最佳方法是什么?我不希望用户和管理员共享相同的 UI,因为它变得太复杂了。我想让他们的用户界面分开,这对我来说更容易和清晰。

非常感谢

【问题讨论】:

    标签: jsf jakarta-ee maven glassfish ejb


    【解决方案1】:

    我建议您将两个项目分成至少 4 个 maven 项目:

    • common-ejb:maven 项目类型“EJB”,保留所有 EJB/实体
    • customer-web:maven 项目类型“WAR”,为普通用户保留所有 UI,依赖于“common-ejb”
    • admin-web:maven 项目类型 'WAR',保留所有 UI 供管理员用户使用,依赖于 'common-ejb'
    • common-ear:maven 项目类型“EAR”,包括“common-ejb”作为 EJB 依赖项,并包含 2 个 Web 项目 (WAR)。

    EAR pom.xml 可能如下所示:

    <groupId>com.example</groupId>
    <artifactId>example-ear</artifactId>
    <version>1.0</version>
    <packaging>ear</packaging>
    
    <dependencies>
    
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>example-ejb</artifactId>
        <version>${project.parent.version}</version>
        <type>ejb</type>
      </dependency>
    
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>customer-web</artifactId>
        <version>${project.parent.version}</version>
       <type>war</type>
      </dependency>
      <dependency>
        <groupId>com.example</groupId>
        <artifactId>admin-web</artifactId>
        <version>${project.parent.version}</version>
       <type>war</type>
      </dependency>
    <dependencies>
    

    如果您需要对上下文根或库部署进行一些自定义,请查看 maven-ear-plugin 文档。

    【讨论】:

    • 太棒了!非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多