当前位置: 首页 > 知识库问答 >
问题:

Maven依赖树/层次结构没有显示真相

许茂才
2023-03-14

我打算将一个由多个单一java项目组成的旧Ant项目迁移到一个多模块maven项目。的所有库都存储在一个本地文件夹中。为了建立依赖关系管理,我想向父pom添加所有依赖关系。xml(依赖项管理部分),并尽我所能将正确的内容添加到子项(Java Maven项目),直到编译工作开始。

然后,我想通过使用“mvn依赖:树-X”来简化pom.xmls,看看我是否向单个Maven项目添加了一些不需要显式添加到pom.xmls的传递依赖

Maven不会说明“jetty http”实际上是jetty server的可传递依赖项——主要是因为我已经在pom中添加了它作为直接依赖项。以前是xml。虽然Eclipse确实显示了这种关系,但这是正确的结果(还使用Maven central dependency list手动检查了它)。

所以最终在使用Maven时,我会把“jetty-超文本传输协议”作为我pom.xml中的直接依赖项,尽管我不必这样做。这有点没用。

有人知道为什么Maven依赖树如此有限吗?我想知道这里发生了什么。使用Maven命令还有其他选择吗?或者有没有更好的方法来检查/识别添加到pom中的可传递依赖项。错误地使用xml?

共有1个答案

空俊语
2023-03-14

最佳实践是将所有直接在源代码中(以及在运行时)使用的依赖项添加到POM。

所以,如果源代码中使用了X,但它已经作为Y的可传递依赖项出现,那么您应该添加X作为直接依赖项。

您可以通过mvn dependency:analyze

https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html

 类似资料:
  • 我正在构建一个JavaProject,这是一个项目的插件[加载在我的工作区中,并且是类型jar和范围编译的MaterialsDep的直接依赖项]。在eclipse中查看MaterialsDep的pom依赖层次结构,CB所需的所有jars都显示为已解析并正确列出。然而,在项目AP上运行只复制直接依赖项,而不复制其他内容。 运行依赖关系:树显示: 这是直接的依赖关系。 我应该如何确保的依赖关系被识别和

  • 当我有一个包含POM的项目时,例如: 但是我似乎弄错了,Internet上的Maven文档并没有帮助我解决这个问题。 有什么想法吗?

  • 问题内容: 像这样对表格进行排序的最佳方法是什么: 要通过分级排序,它 的ID 或 名字 : “比萨饼” //节点1 “piperoni” //节点1.1 “奶酪” //节点1.2 “额外的奶酪” //节点1.2.1 “vegetariana” //节点1.3 “汉堡” //节点2 ‘咖啡’//节点3 编辑: 名称 末尾的数字是为了更好地可视化strucutre,而不是用于排序。 编辑2: 正如多

  • 我想知道以下jar的所有传递依赖项: 将经典命令移动到pom。项目定义依赖关系和输入的xml: mvn依赖:树 将显示: 我没看到魔咒父母: 乍一看,mvn命令似乎可以显示非pom类型的依赖项。 有没有一种方法可以精确地显示使jar保持活动状态所需的每个文件? 谢谢

  • 我想使用OWL API在本体中创建类的类层次结构,类似于在Protege等工具中加载本体时可能看到的情况。 有关如何执行此操作的示例可在此处找到:http://sourceforge.net/p/owlapi/mailman/message/27600103/。 正如您所看到的,使用OWL API似乎很难精确地再现Protege层次结构,我想知道是否有一个例子可以再现Protege的行为,或者是否

  • 问题内容: Maven常见的调试技术是使用mvndependency:tree查看项目依赖关系图。 但是,此列表显示项目依赖关系,而不是每个插件的插件依赖关系树。有什么办法可以从项目中做到这一点吗? 问题答案: 通过mvn -X的输出将间接打印出信息。当前没有其他选择来获取Maven-Plugin的依赖项。 更新 您可以使用以下命令获取插件依赖项列表(依赖项插件中的resolve- plugin目