Maven 的 help 插件提供 effective-pom 和 effective-properties 两个目标,分别用于查看合并后的完整 POM 和解析后的属性值;支持输出到文件、指定 profile、调试日志分析,并兼容不同 Maven 版本。

Maven 的 help 插件是查看项目 POM 配置最直接的工具之一,尤其适合快速确认实际生效的配置(比如继承、属性替换、默认值等)。
使用 help:effective-pom 查看最终合并后的 POM
执行以下命令可输出当前项目**实际生效的完整 POM 内容**,包括父 POM 继承、属性插值、默认插件配置等:
mvn help:effective-pom
该命令会把所有层级(本地 POM + 父 POM + Maven 默认 super POM)合并后生成一个等效的 XML,便于排查配置是否按预期生效。如需保存结果到文件,可加 -Doutput=effective-pom.xml 参数:
mvn help:effective-pom -Doutput=effective-pom.xml- 输出内容不含注释和格式缩进,但结构完整,可直接用于比对或调试
使用 help:effective-properties 查看解析后的属性值
当项目中大量使用 ${property} 或 profile 激活时,属性实际值可能与源码不同。运行以下命令可列出所有**已解析完成的属性及其最终值**:
mvn help:effective-properties
它会显示 project.*、env.*、系统属性、命令行参数以及 profile 中定义的属性,特别适合验证 profile 是否激活成功、环境变量是否被正确读取。
- 支持指定 profile:
mvn help:effective-properties -Pdev - 输出为标准 Java properties 格式,也可导出:
-Doutput=props.txt
结合 -X 和 help 插件定位配置问题
如果发现 effective-pom 或 effective-properties 结果不符合预期,可搭配 Maven 调试日志进一步分析:
- 加
-X参数运行 help 命令,例如:mvn -X help:effective-pom - 日志中会显示 POM 解析路径、profile 激活过程、属性替换步骤等关键信息
- 重点关注
[DEBUG] Reading effective model from...和[DEBUG] Resolving property...行
注意版本兼容性与常用简写
help 插件从 Maven 2.0.9 起内置,无需额外声明。但较新版本(如 3.8+)默认使用 help:effective-pom 的简化语法:
- 可省略
help:前缀:直接运行mvn effective-pom(Maven 3.5+ 支持) - 若提示目标不存在,说明 Maven 版本较低,必须写全称
mvn help:effective-pom - 插件最新稳定版为
3.4.0,如需特定功能(如 JSON 输出),可显式指定版本:mvn org.apache.maven.plugins:maven-help-plugin:3.4.0:effective-pom

















