2012-03-12 132 views
0

我有以下项目: 5个(+)罐子,每个构建特定的组件,具有共同的依赖关系和特定于罐子的依赖关系 1 war(捆绑这些罐子,依赖) 1耳(持有战争和战争)用战争,耳朵和依赖罐子的Maven安装程序

如何适应这一切很好地进入行家?

我有以下设置:

project-root.pom 
    |- generic jar dependency 1 
    |- generic jar dependency 2 
    |- modules 
     | - jar 1 (uses generic dependencies, and a couple of others) 
     | - jar 2 (uses generic dependencies, and a couple of others) 
     | - war project (uses generic jars, and jar 1 and 2) 
     | - ear project 

但是,这并不工作,因为耳朵项目将包括在/ lib文件夹中的父的通用罐子依赖。

这样的项目怎么能够在maven中很好地建立起来?


更新

我还挺由具有根POM其中宣布了jar1,2个模块围绕它的工作,战争和耳朵项目,但是必须在jar1,jar2,战争从继承父母pom。耳项目没有。这是正确的做法吗?

回答

0

你潦草写下的结构让我对你的项目结构有不同的感受。让我稍微描述一下。如果我看到类似下面的结构,我会假设:

project-root.pom 
    |- generic jar dependency 1 (parent: project-root.pom) 
    |- generic jar dependency 2 (parent: project-root.pom) 
    |- modules 
     +-- module-pom 
     | - jar 1 (uses generic dependencies, and a couple of others) (parent:module-pom) 
     | - jar 2 (uses generic dependencies, and a couple of others)(parent:module-pom) 
     | - war project (uses generic jars, and jar 1 and 2) (parent:module-pom) 
     | - ear project (parent:module-pom) 

但你在文本模块在不同的充方式的关系描述:

root 
|- generic jar dependency 1 
|- generic jar dependency 2 
|- jar 1 (uses generic dependencies, and a couple of others) 
|- jar 2 (uses generic dependencies, and a couple of others) 
|- ear project 
|- war project (uses generic jars, and jar 1 and 2) 

通过上述结构,你可以简单地定义战争中的依赖关系取决于jar-1,jar-2。耳朵只取决于战争。 jar-1可能依赖于通用jar依赖1等等。这个级别给观察者一个不一样的印象。所以你的结构应该代表你的依赖结构。我不确定这是否是您的项目的正确结构,但代表您的依赖关系指导您的结构(文件夹结构)。

0

它应该可以工作,但是你没有透露你的project-root pom.xml的内容。你在那里使用“dependencyManagement”,而不是“依赖”?这听起来不是在使用“dependencyManagement”部分,但是您应该将所有依赖项都提交给所有子模块。

+0

我想在耳项目中的所有子依赖项_except_中的依赖jar。在耳项目中,我可以通过添加所有模块来避开这个问题,然后将它们排除在外......但是肯定上面的这样的设置是很常见的,而且有人击败了这个野兽? – 2012-03-12 13:23:28

+0

好吧 - 不,我不认为这是很常见的有多个工件,都需要包含相同的一组依赖瓶。到目前为止,最常见的方式是在子pom中指定依赖关系,因为所有模块通常都有自己的一组依赖关系。即使在你的情况下,我也会在project-root dependencyManagement部分指定依赖项,然后在jar-1和jar-2中指定依赖项。它还有一个额外的好处,即它的所有依赖关系在模块级别都是明确的,并且你不必为此通过root pom。 – eis 2012-03-12 18:33:16

+0

所以,我不会保留它,然后... – 2012-03-13 07:43:33