maven-2 - 如何显示Maven POM层次结构?

标签 maven-2

我正在做一些脚本编写,并且需要获取任何给定pom的所有父pom的列表。依赖插件似乎只对pom依赖部分中列出的依赖感兴趣,但是似乎没有办法显示父poms,这也是Maven工作所必需的依赖。

我缺少基本的东西吗?

最佳答案

没有简单的Maven命令可以为您显示pom.xml的父POM链。这样做的原因是,这不是一个通常会问到的常见问题(更多信息请参见下文)。对于您的脚本,您只需解析pom.xml文件,获取父 Artifact 的坐标,获取 Artifact 的pom.xml文件的内容,然后解析它的pom.xml文件(并重复)。抱歉,但我知道没有捷径,但other folks have solved similar problems

从技术上来说,父pom是项目的依赖项,这是正确的,但它不是字面的Maven依赖项,并且处理方式完全不同。父poms链, Activity 概要文件,您的settings.xml文件和安装目录中的Maven super pom都组合在一起,以创建项目的有效pom 。有效的POM是Maven真正用来执行其工作的东西。因此,基本上,父pom继承链已被解析并合并,甚至在依赖项插件(或任何其他插件)被激活之前。

大多数人通常会问的问题是:“当Maven完成所有内容的组合后,我的REAL pom.xml到底是什么样?”或“我的 parent poms的继承链有什么结果?”或“ Activity 配置文件如何影响我的pom.xml属性?”有效的pom会告诉您所有这一切。

我知道您没有要求,但是对于其他阅读此文章的人,如果您想查看您的父pom.xml,只需在M2Eclipse POM编辑器中打开pom.xml,然后单击“概述”选项卡上的父 Artifact 链接即可。这样,您只需单击一次pom即可快速向上移动pom.xml文件链。这将是一个奇怪的项目,它具有超过3或4个父继承项。

如果要查看有效的pom,可以运行mvn help:effective-pom命令。或者,您可以单击M2Eclipse的POM编辑器中的“有效POM”选项卡。

关于maven-2 - 如何显示Maven POM层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9120294/

相关文章:

java - 将子模块中的小程序添加到 Maven 中的 WAR 文件

java - 使用 maven-exec-plugin 增加内存大小

java - 如何以编程方式获取依赖项的 SCM 连接 URL?

maven - Maven “Skipping javadoc generation”为什么?

maven - slf4j-log4j12 未由 maven 打包,范围为 "runtime"

java - 如何在 Liquibase 中模仿 Hibernate hbm2ddl "create"行为?

apache-flex - Maven 版本 :perform seems to break build-helper:add-source

maven - 使用 Maven 构建时出现服务不可用错误

java - Maven 中具有相同 Artifact 的多个存储库

java - 摆脱 derby.log