在子pom中引用来自父pom的依赖项版本

时间:2019-10-02 13:29:27

标签: maven maven-3

我有一个父pom,它像这样在dependencyManagement bloc中定义了一个依赖项

    <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.tibco.plugins</groupId>
            <artifactId>com.tibco.bw.palette.shared</artifactId>
            <version>6.1.100</version>
        </dependency>
    </dependencies>
</dependencyManagement>

在儿童pom中,我正在使用这种依赖项

  <dependencies>
<dependency>
  <groupId>com.tibco.plugins</groupId>
  <artifactId>com.tibco.bw.palette.shared</artifactId>
  <scope>provided</scope>
</dependency>

问题是当我打开项目是自定义的Eclipse IDE时,出现此错误,它无法理解该版本位于父pom中

enter image description here

我需要某种方式在不重新定义子pom的情况下引用父pom中的版本

谢谢

2 个答案:

答案 0 :(得分:1)

尝试一下...

在您的父母pom

<groupId>my.project</groupId>
<artifactId>myproject-parent</artifactId>
<version>MYPROJECT-1.0</version>
<packaging>pom</packaging>
<properties>
    <com.tibco.bw.palette.shared.version>6.1.100</com.tibco.bw.palette.shared.version>
</properties>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.tibco.plugins</groupId>
      <artifactId>com.tibco.bw.palette.shared</artifactId>
      <version>${com.tibco.bw.palette.shared.version}</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

然后在您的孩子pom

<parent>
    <groupId>my.project</groupId>
    <artifactId>myproject-parent</artifactId>
    <version>MYPROJECT-1.0</version>
    <relativePath>..</relativePath>
</parent>

<groupId>my.project.child</groupId>
<artifactId>myproject-child</artifactId>
<version>MYPROJECT-1.0</version>

<dependencies>
  <dependency>
    <groupId>com.tibco.plugins</groupId>
    <artifactId>com.tibco.bw.palette.shared</artifactId>
  </dependency>
</dependencies>

正确设置父母/子女关系非常重要。另外请注意,dependencyManagement仅在Maven层次结构中起作用一个级别(即不适用于“大孩子”)

答案 1 :(得分:0)

在属性X.X下的父pom中添加依赖项版本,并在子项中引用占位符。实际上,您也可以在父级外部省略相同的项目属性,因为它们将从父级继承。 –来自WhoCares