在maven child pom依赖项中,如果在配置文件中提到它们,则不会从父pom依赖项中获取版本

时间:2011-03-29 14:16:54

标签: maven-2 maven

我有一个多模块项目,我在父pom中使用配置文件,它们中提到了特定的依赖项。 这里的问题是,如果在子pom中,我重写了依赖元素,并提到了父pom中的一个依赖项(在父pom中的一个配置文件中声明),那个特定依赖项的版本需要是再次提到。

E.g 父母pom

<dependencies>
   <dependency>
      <groupId>com.mycode.apps</groupId>
      <artifactId>jobs</artifactId>
      <version>4</version>   
   </dependency>
</dependencies>
<profiles>
<profile>
    <id>common-dependencies</id>
<activation>
    <activeByDefault>true</activeByDefault>
</activation>
    <dependencies>
       <dependency>
          <groupId>com.mycode.apps</groupId>
          <artifactId>dao</artifactId>
          <version>4</version>   
       </dependency>
    </dependencies>
</profile>
</profiles>

现在在子pom.xml中

<dependencies>
       <!--this one doesnt need a version specified -->
       <dependency>
          <groupId>com.mycode.apps</groupId>
          <artifactId>jobs</artifactId>
       </dependency>
       <!--this one makes maven throw an error(if version is not specified) while compilation -->
       <dependency>
          <groupId>com.mycode.apps</groupId>
          <artifactId>dao</artifactId>
       </dependency>
</dependencies>

知道可能出现什么问题,我该如何解决?

注意:配置文件标记为activeByDefault

1 个答案:

答案 0 :(得分:3)

对于这种要求,你dependencyManagement就是这种情况。或者查看Sonatype Book。 这种情况不应由个人资料处理。