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

时间:2014-03-19 11:50:00

标签: java maven jsf-2 ejb-3.1 java-ee-7

我有一个网络应用程序项目,现在正在发展为包含自己的ejbs和jsf网页的单独的web子模块。

项目结构将如下所示。

  • 父项目
  • common-module
  • creditcard-module
  • bankpayment-module
  • 更多支付模块......
  • war-module

除了通用模块之外的每个模块都有自己的ejbs和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 |

对于其他商业模块也是如此,此外还有一个主战/耳模块来包含所有战争。

重要提示:是否可以共享持久性单元? cdi会在整个模块中工作吗(最后是单耳/战争)?

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

我应该如何用maven实现这个目标?

2 个答案:

答案 0 :(得分:1)

您可以使用Maven Web叠加层完成您想要的任务:

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

它们允许Web资源通过依赖项传播项目,类似于源文件和类路径资源通过jar文件传播到war文件中的依赖关系。

答案 1 :(得分:0)

您可以使用Apache Maven EAR Plugin创建 Enterprise Archive (.ear文件):

  

Java EE应用程序在Enterprise Archive(EAR)中提供   file,扩展名为.ear的标准Java Archive(JAR)文件。运用   EAR文件和模块可以组装一些   使用某些相同组件的不同Java EE应用程序。没有   需要额外的编码;这只是一个组装问题(或   将各种Java EE模块打包成Java EE EAR文件。 (来源:Java EE 5 docs

创建包含 ear 的新模块。 Use maven-ear-plugin configure the modules,您希望将它们组合在一起。