如果我在元素下声明了一个插件<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
(。