两个不同的Maven Web项目如何共享同一个EJB

时间:2012-11-14 02:55:23

标签: jsf java-ee maven glassfish ejb

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

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

非常感谢

1 个答案:

答案 0 :(得分:5)

我建议你将你的项目分成至少4个maven项目:

  • common-ejb:maven项目类型'EJB',保留所有EJB /实体
  • customer-web:maven项目类型'WAR',保留所有常规用户的用户界面,依赖'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 doc。