2010-05-10 43 views
3

我的目标很简单,但实际上,因为有多个(和看似复杂的方式来做到这一点),我不知道我需要做的......所以我有一定的运行时库(特别是ADF库),每项目需要添加到。这个父pom文件只包含JAR依赖关系。我怎样才能从一个孩子的POM文件使用这个POM文件?Maven的:在每个项目中重新使用POM文件

回答

8

我不认为使用继承是一个很好的解决方案。即使每个项目都使用ADF工件,但您不希望所有的poms都获得这些依赖关系,因此在公司父pom中声明它们并不是真正的选择。

所以,相反,我的建议是创建pom包装组项目中的ADF相依在一起:

<project> 
    <groupId>com.mycompany</groupId> 
    <artifactId>adf-deps</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 
    <dependencies> 
    <dependency> 
     <groupId>some.groupId</groupId> 
     <artifactId>adf-artifact-1</artifactId> 
     <version>${jdev.version}</version> 
    </dependency> 
    ... 
    <dependency> 
     <groupId>some.groupId</groupId> 
     <artifactId>adf-artifact-n</artifactId> 
     <version>${jdev.version}</version> 
    </dependency> 
    </dependencies> 
    <properties> 
    <jdev.version>10.1.3</jdev.version> 
    </properties> 
</project> 

然后,安装/部署该项目,并在需要的任何项目声明为依赖ADF artifact:

<project> 
    ... 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>adf-deps</artifactId> 
     <version>1.0</version> 
     <type>pom</type> 
    </dependency> 
    </dependencies> 
</project> 
+2

+1用于推荐构成的继承。这实际上有两个方面的帮助,它允许轻松地重用依赖项集,并允许更轻松地升级到这些依赖项集的新版本。 – sal 2010-05-10 16:32:43

1

如果孩子POM文件实际上是一个孩子(即声明它的父),那么它将继承的依赖关系并没有什么留给你做的事。

相关问题