我希望能够在父pom中定义一组依赖项,并且能够在子poms中包含这些集合。
例如:
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
有没有办法做到这一点?谢谢!
答案 0 :(得分: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依赖项都会自动包含在内。