在插件管理元素中声明的 maven 插件适用于当前的 pom



如果我在元素下声明了一个插件<pluginManagement>并且我也想在同一个 POM 中使用它,我的理解是我必须在<build>元素下的<plugins>元素下声明它,根据 https://maven.apache.org/pom.html#Plugin_Management 和 什么是插件管理在Maven的pom.xml?.

但是我发现我不需要在元素下<plugins>元素下声明它<build>以便在 spring-security-oauth 示例项目中执行mvn tomcat7:run时使用该插件。该插件是tomcat7-maven-plugin。

所以我很好奇为什么它不在这里声明就有效。

如果你像你一样在命令行上显式调用插件,你根本不需要任何声明。

例如,您可以在不声明 maven 依赖项插件的情况下调用mvn dependency:list

您正在谈论的是将插件包含在生命周期中

因此,如果您想调用mvn clean verify并期望插件在某个阶段运行,则需要在<plugins>中声明它(当然,除非它是生命周期的标准插件之一,如compile:compile(。

最新更新