Maven 从子pom中的父pom引用依赖项的版本

Maven 从子pom中的父pom引用依赖项的版本,maven,maven-3,Maven,Maven 3,我有一个父pom,它在dependencyManagement集团中定义了一个依赖项,如下所示 <dependencyManagement> <dependencies> <dependency> <groupId>com.tibco.plugins</groupId> <artifactId>com.tibco.bw.palette.share

我有一个父pom,它在dependencyManagement集团中定义了一个依赖项,如下所示

    <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>
问题是当我打开一个定制的EclipseIDE项目时,我出现了这个错误,它无法理解这个版本是在父pom中

我需要一些方法来引用子pom中父pom的版本,而无需重新定义它


感谢您

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

试试这个

在你父母的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层次结构中只起一个级别的作用,即它不适用于大孩子

您可以将tibco插件工件直接从dependency management移动到父pom.xml的dependency部分吗。此外,在Eclipse中将项目作为Maven项目导入。该项目作为Maven项目导入。我可以看到Maven图标,我想将依赖项集中在dependencyManagement中,是否可以引用版本?感谢您的重播,您可以在properties X.X下的parent pom中添加依赖项版本,并在child中使用placeholder引用该版本。实际上,您也可以省略父级之外的相同项目属性,因为它们将从父级继承。我想您的Eclipse需要一些更新,比如ALT+F5或重启。此外,尝试在您的项目上运行构建(例如,clean verify),这通常可以解决同步问题。或者您需要检查您的项目中是否有正确的父/子关系。。。