Java 如何从父依赖项maven pom文件中仅获取所需的依赖项

Java 如何从父依赖项maven pom文件中仅获取所需的依赖项,java,maven,pom.xml,Java,Maven,Pom.xml,我是否可以只包含来自父pom的所需依赖项(就像我们排除的那样) 我需要这个来实现一个场景 以hibernate和spring作为依赖项的项目A(有 (其他许多) 只有hibernate和spring的项目B 以A和B作为依赖项的项目C 问题陈述:当我在ProjectC中运行maven安装时,hibernate和spring再次分别下载。这是我观察到的,因为最终的罐子大小增加了 作为一种解决方法,我在项目C中包含了项目a作为依赖项,因此我不需要明确提到hibernate和spring 为了避免这种

我是否可以只包含来自父pom的所需依赖项(就像我们排除的那样)

我需要这个来实现一个场景

  • 以hibernate和spring作为依赖项的项目A(有 (其他许多)
  • 只有hibernate和spring的项目B
  • 以A和B作为依赖项的项目C
  • 问题陈述:当我在ProjectC中运行maven安装时,hibernate和spring再次分别下载。这是我观察到的,因为最终的罐子大小增加了

    作为一种解决方法,我在项目C中包含了项目a作为依赖项,因此我不需要明确提到hibernate和spring


    为了避免这种情况,有一种方法可以只包含项目a中的spring和hibernate?

    要从中获取spring hibernate,您需要将子-父关系a(父)和B,C作为子关系

    Jar文件增量不能是这种情况。xml确实提供了在.m2 repo中下载的依赖项的引用


    为了进行进一步的调查,我们需要POM.xml,听起来您只是根据大小猜测项目C jar中的内容。解压最后一个jar(重命名为.zip)并查看内部,看看实际打包了哪些jar来解决这个问题


    JAR、WAR和EAR只是带有清单(或多或少)的zip文件。

    因此,您的所有依赖项都应该在父pom中定义,在案例a、B和C中,您的所有项目都应该是父pom的子项目

    在所有子pom中,您可以定义无版本所需的所有依赖项,以便从父pom解析它们

    子项目的相互依赖性应仅在需要时定义。这样,为了从项目A获得依赖关系,C不应该依赖于A

    | - - A
    | - - | - - pom.xml
    | - - B
    | - - | - - pom.xml
    | - - C
    | - - | - - pom.xml
    | - - pom.xml (parent pom)
    

    如果您可以将此结构作为github项目,那么我可以创建一个包含更改的pull请求。

    我不明白您在做什么。在标题中,您提到了父POM。在问题中,您讨论的是依赖关系。