使用Maven插件
自从maven-help-plugin 3.2.0版本之后,新的verbose
标志已添加到effective-pom
目标中,它将向您显示此信息。将verbose
设置为true
将在输出的每一行上添加一个指向源POM文件的注释。输出并不会向您展示完整的依赖关系链,但是它包括源文件的组ID、artifact ID、版本和行号。
您可以通过执行以下Maven命令来生成详细的有效POM(确保使用maven-help-plugin的3.2.0或更高版本):
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:effective-pom -Dverbose=true
如果我们将这个应用到一个继承自父pom的简单Maven项目中,就像这个例子一样:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</parent>
<groupId>org.mycompany</groupId>
<artifactId>myproject</artifactId>
<version>1.0-SNAPSHOT</version>
<name>My Project</name>
<properties>
<a-property>hello world</a-property>
</properties>
</project>
然后输出将如下所示(请注意每行末尾的额外XML注释):
<?xml version="1.0" encoding="Cp1252"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</parent>
<groupId>org.mycompany</groupId>
<artifactId>myproject</artifactId>
<version>1.0-SNAPSHOT</version>
<name>My Project</name>
<description>Parent pom providing dependency and plugin management for applications built with Maven</description>
<url>https://spring.io/projects/spring-boot/myproject</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
</license>
</licenses>
<developers>
<developer>
<name>Pivotal</name>
<email>info@pivotal.io</email>
<organization>Pivotal Software, Inc.</organization>
<organizationUrl>https://www.spring.io</organizationUrl>
</developer>
</developers>
<scm>
<url>https://github.com/spring-projects/spring-boot/myproject</url>
</scm>
<properties>
<a-property>hello world</a-property>
使用Apache NetBeans
另一个选择是使用Apache NetBeans IDE,它具有一项功能,可以在每行注释的有效POM文件中注释源链接。
在NetBeans IDE中打开Maven项目的pom.xml文件,并单击编辑器顶部的“Effective”选项卡。通过在编辑器左侧悬停注释,您可以查看源并单击它以立即转到引用的POM文件:
![Apache NetBeans中effective POM的源代码](https://istack.dev59.com/nkWO9.webp)
mvn execute
和mvn validate:execute
都不会起作用。execute
是一个目标,而不是一个阶段。validate:execute
表示运行validate
插件的execute
目标;我不确定这个插件是否存在。(如果您正在学习Maven,我强烈建议您进行一些研究,以了解阶段和目标之间的区别。)如果您在父POM的<build> <plugins>
部分中有配置,则应作为validate
阶段的一部分运行,因此mvn validate
应该可以实现。如果没有结果,请尝试使用-X
获取调试输出。 - user944849