包含ejb 3.1和jsf页面的依赖jar



我有一个web应用程序项目,现在正在成长为包含自己的ejb和jsf网页的独立web子模块。

项目结构看起来像下面的东西。

  • 父项目
  • 通用模块
  • creditcard-module
  • bankpayment-module
  • some-more-payment-modules……
  • war模块

除了公共模块,每个模块都有自己的ejb和jsf页面。

如果可能的话,我需要每个模块是一个独立的战争和建立一个大的战争与战争模块。

编辑

项目当前结构

war module -- 
           --| persistenceunit |
           --| entities |
           --| ejbs |
           --| cdi managed beans |
           --| controllers |
           --| jsf-pages |
           --| resources |

不同的业务单元只是通过包分开。现在,它需要能够版本不同的业务单位分别,即不同的mvn项目为每个。

实现结构:

Common module -- 
              --| persistenceunit |
              --| dao helpers |
              --| common ejb services |
              --| common managed beans |                  
              --| jsf-templates |
              --| common resources |
Creditcard module -- 
              --| related entities |
              --| ejb services |
              --| related managed beans |                  
              --| jsf-pages |
              --| specific resources |

其他业务模块也一样,而且一个主war/ear模块包含所有的war。

重要:是否可以共享持久单元?cdi会跨模块工作吗(最后是一个耳朵/战争)?

本质上,这个想法是根据业务需求而不是纯粹的技术层来模块化项目。

如何在maven中实现这个?

您可以使用Maven Web覆盖完成您想要的:

http://maven.apache.org/plugins/maven-war-plugin/overlays.html

它们允许您通过依赖项在项目中传播Web资源,类似于源文件和类路径资源如何通过jar文件传播并通过依赖项传播到war文件。

您可以创建一个Enterprise Archive(。使用Apache Maven ear插件:

Java EE应用程序在企业存档(EAR)中交付一个标准的Java Archive (JAR)文件,扩展名为.ear。使用EAR文件和模块使得组装许多使用一些相同组件的不同Java EE应用程序。没有需要额外的编码;这只是一个组装(或)的问题将各种Java EE模块打包到Java EE EAR文件中。(来源:Java EE 5 docs)

创建一个封装为的新模块。使用maven-ear-plugin,配置你想要组装在一起的模块。

最新更新