Java 如何在Maven中的多个项目之间共享项目依赖关系?

Java 如何在Maven中的多个项目之间共享项目依赖关系?,java,maven,dependencies,pom.xml,Java,Maven,Dependencies,Pom.xml,我有下面的项目结构 Main Project --Sub Project 1 - child 1 * pom-child1 - child 2 * pom-child2 * pom-sub-project1 --Sub Project 2 * pom-sub-project2 * main project pom 我在主项目pom中定义了几个项目依赖项,并在子项目pom和子项目pom中引用了它。但是如果pom不是主项目pom的直

我有下面的项目结构

Main Project
--Sub Project 1
    - child 1
        * pom-child1
    - child 2
        * pom-child2
  * pom-sub-project1

--Sub Project 2
      * pom-sub-project2
* main project pom
我在主项目pom中定义了几个项目依赖项,并在子项目pom和子项目pom中引用了它。但是如果pom不是主项目pom的直接子项目,我会发现一些问题。有办法解决吗

例如, 主要项目pom

<packaging>pom</packaging>
<version>dev</version>
<name>parent-project</name>
..
<properties><spring-version>3.1.0.RELEASE</spring-version></properties>
pom
发展
父项目
..
3.1.0.1发布
儿童POM

<parent>
        <groupId>com.test.pkg</groupId>
        <artifactId>test-proj</artifactId>
        <version>${project.version}</version>
    </parent>

com.test.pkg
测试项目
${project.version}
如果${project.version}不是父pom的直接子项,则不会解析它,因为父pom没有解析任何项目依赖项

此外,我还了解了用于从外部属性文件读取属性的属性maven插件。这可以用于读取依赖版本吗?或者在这种情况下是否有其他插件/方法可以使用

您不能使用

${project.version}
定义父版本,因为默认情况下子版本继承父版本

使用有效值而不是属性设置父版本

如果您这样做,它应该可以工作,您不必指定child的版本,因为它将从父级继承。

您不能使用

${project.version}
定义父版本,因为默认情况下子版本继承父版本

使用有效值而不是属性设置父版本


如果这样做,它应该可以工作,并且您不必指定子项目的版本,因为它将从父项目继承。

主项目pom是否也定义为子项目1和2的父项目?子项目是否定义为子项目的父项目?您遇到了什么类型的问题?哪个连接不起作用?在哪些项目之间?@A.DiMatteo Ex:在主项目下,我有相互独立的不同web项目(子项目1,2..)。每个web项目都有子模块,这些子模块可以是公共LIB,也可以是相关的其他web项目。他们每个人都有自己的pom。主项目的pom文件具有项目依赖项和版本,只有在其为直接子pom时才可访问,而在基础子模块中,项目版本或依赖项在构建期间未解析。向问题添加更多信息主项目pom是否也定义为子项目1和2的父项目?子项目是否定义为子项目的父项目?您遇到了什么类型的问题?哪个连接不起作用?在哪些项目之间?@A.DiMatteo Ex:在主项目下,我有相互独立的不同web项目(子项目1,2..)。每个web项目都有子模块,这些子模块可以是公共LIB,也可以是相关的其他web项目。他们每个人都有自己的pom。主项目的pom文件具有项目依赖项和版本,只有在其为直接子pom时才可访问,而在基础子模块中,项目版本或依赖项在构建期间未解析。向问题添加更多信息