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



我可以只包括父pom中所需的依赖项吗(就像我们排除的那样(?

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

  1. 项目A以hibernate和spring作为依赖项(有许多其他(
  2. 只有冬眠和春天的项目B
  3. 以A和B为依赖项的项目C

问题语句:当我在项目C中运行maven install时,hibernate和spring再次分别下载。这是我观察到的,因为最终罐子的尺寸增加了。

作为一个变通方案,我将项目a作为依赖项包含在项目C中,这样我就不需要明确提及hibernate和spring。

为了避免这种情况,有没有办法只包括项目a中的spring和hibernate?

听起来你只是在根据大小猜测项目C jar中有什么。打开最后一个罐子的拉链(重命名为.zip(,看看里面到底打包了什么罐子来弄清楚。

罐子、战争、耳朵只是带有清单的zip文件(或多或少(。

因此,您的所有依赖项都应该在parent 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请求。

要从中获取Spring Hibernate,您需要将Child-Parent关系A(Parent(和B,C作为Child。

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

为了进一步调查,我们需要POM.xml

最新更新