2013-11-28 35 views
0

我想打包两个WAR,其中包含互斥的低级实现。我尝试过不同的方法,并且我感到唠叨的感觉,我很想念那些明显的东西。包2不同子模块的WAR

我的项目结构被构造在子模块:

app 
    foo 
    foo-highlevel 
    foo-lowlevel1 
    foo-lowlevel2 
    bar 
    webapp 

为WAR 1所述的依赖关系应是:

webapp 
\-foo-highlevel 
    \-foo-lowlevel1 
\-bar 
    \-foo-highlevel 

,并相应地为WAR 2:

webapp 
\-foo-highlevel 
    \-foo-lowlevel2 
\-bar 
    \-foo-highlevel 

即是,我想要

  • 隐藏吧foo的高级实现需要低级别实现
  • 仅封装一个低级实现。 (注意:低级别的实现包括弹簧豆注入到foo-highlevel)

我该如何实现将两个WAR包装到相应的位置?

途径我曾尝试:

  • 概况:但他们的目的不是为同一POM创建不同的文物,它没有工作了反正
  • 多金属氧酸盐:我可以定义两个多金属氧酸盐为Web应用程序分别具有对lowlevel1或lowlevel2的依赖关系。但到目前为止,在web应用程序的POM中,对foo-highlevel的依赖性已经足够,所以我想知道这是否是确定低级依赖关系的正确位置。

途径我考虑尝试:

  • 使用Maven的组装插件:但这是这个工作的工具?
  • 使用战争覆盖:也许这是正确的工具?

感谢您的想法

回答

1

拇指Maven的规则是“每一个POM神器”,所以我觉得你的“多金属氧酸盐”的做法是要走的路。您可以将webapp保留为定义基本依赖项的父集合器项目,然后使用2个poms来构建从该顶级pom继承的war,并指定低级别依赖项。

+0

谢谢。我在一个包含webapp-lowlevel1和webapp-lowlevel2以及webapp-common(用于web.xml和共享源代码)的集合webapp pom中重构了webapp。 – user1627943