【问题标题】:removing dependencies as duplicate in child pom.xml introduces errors as dependencies are in parent pom.xml删除子 pom.xml 中重复的依赖项会引入错误,因为依赖项位于父 pom.xml 中
【发布时间】:2019-07-20 09:49:08
【问题描述】:

IntelliJ 中引入了新的 maven 模块。

newPom.xml 的依赖项是被引用的父 POM 的一部分。

在开发过程中,我们使用了 intelliJ 功能添加依赖项来解决问题。

在代码审查期间,我们被要求删除依赖项,因为它们应该存在于父 POM.XML 中

我们删除了作为父 POM.XML 文件中存在的依赖项的依赖项。

在根据代码审查 cmets 清除冗余依赖项后,我们作为 Child POM.XML 的一部分引入的所有类开始出现错误。

我的问题是解决这些错误需要做些什么,因为依赖项是父 POM.XML 的一部分

任何指导,而我最早也在做同样的研究。

【问题讨论】:

  • 请贴一些代码、示例等
  • 请彻底删除您的 intellij 项目,然后从 parten pom、模块和所有模块中重新导入项目,必要时覆盖所有 intellij 文件。
  • 首先,确保 Maven 配置正确:mvn compile 模块必须成功完成。然后确保您将父 pom.xml 文件也导入到 IDE 项目中(您可以从 Maven 项目工具窗口中导入它)。或者您可以按照@Engineer Dollery 的建议导入 Maven 项目(从父 pom.xml)。
  • @Andrey 我的问题是因为在删除依赖项时出现的问题,因为不用说 mvn compile 不会成功完成。父 POM.XML 总是导入,但是当我们尝试获取父 pom 时,我们无法获取相同的内容,这让我们想到您提到的第一点,如果 Maven 配置正确。 “不知道你什么时候提到你可以从 Maven 项目工具窗口导入它,它是如何完成的”

标签: java xml maven intellij-idea


【解决方案1】:

如果依赖项在父pom中,则由子项目继承。所以在某个地方,有一个错误。

首先,检查子项目的mvn dependency:list 是否确实缺少依赖项。然后检查是否引用了正确版本的父pom。

一个常见的混淆区域是如果父 pom 声明 <dependencyManagement>。此处的条目不是依赖项,即使它们看起来像依赖项。

【讨论】:

  • 感谢您的建议。 mvn依赖:list没有下载父pom模块依赖,我们只是检查了
  • 父 pom 声明
  • @Ajay 是在dependencyManagement 外部还是内部声明了“丢失”的依赖项?在dependencyManagement 中声明的依赖不是真正的依赖,需要再次声明为依赖(在父或子中)。
  • 丢失的依赖没有在dependencyManagement之外声明
  • 如果它们在dependencyManagement 部分,它们not 被声明为依赖项。 dependencyManagement 的条目纯粹用于覆盖版本和范围。
猜你喜欢
  • 2019-04-16
  • 2020-12-07
  • 2014-02-19
  • 2022-01-22
  • 2018-07-15
  • 2020-07-17
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多