1

我希望能够在父 pom 中定义一组依赖项,并能够将这些集合包含在子 pom 中。

例如:

parent pom {
   set1 {artifact1, artifact2, artifact3}
   set2 {artifact4, artifact5}
   set3 {artifact6, artifact7}
}

child1 pom {
   dependencies {set1, set2}
}

child2 pom {
   dependencies {set2, set3}
}

此处也描述了此行为(未实现):http ://docs.codehaus.org/display/MAVEN/Profiles+for+optional+dependencies

有没有办法做到这一点?谢谢!

4

1 回答 1

2

我不认为有一种方法可以通过 POM 的父/子关系来实现您想要的(尽管很高兴对此进行更正),但是一个可能对您有用的解决方案是在他们自己的中定义依赖组POM 文件,然后在您的各个模块中添加对此 POM 的依赖项。

例如,这里是一些 Spring 依赖项的 POM 定义:

<groupId>com.xyz</groupId>
<artifactId>spring-deps</artifactId>
<version>SNAPSHOT</version>
<packaging>pom</packaging>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>  
        <version>3.1.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.1.4.RELEASE</version>
    </dependency>
</dependencies>

然后在你的模块的 pom 中定义一个对这个 pom 的依赖:

<groupId>com.xyz</groupId>
<artifactId>module1</artifactId>
<version>SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>com.xyz</groupId>
        <artifactId>spring-deps</artifactId>
        <version>SNAPSHOT</version>
        <type>pom</type>
    </dependency>
</dependencies>

并且 spring-deps pom 中定义的所有 Spring 依赖项都会自动包含在内。

于 2013-07-22T08:01:32.023 回答