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

Pin*_*chy 3 jsf ejb glassfish java-ee maven

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

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

非常感谢

JSc*_*Ced 5

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

  • common-ejb:maven项目类型'EJB',保留所有EJB/Entities
  • 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>
Run Code Online (Sandbox Code Playgroud)

maven-ear-plugin如果需要定制上下文根或库部署,请查看doc.