Maven pom.xml 中的插件是否需要 groupId?

is groupId required for plugins in Maven pom.xml?

在我的 pom.xml 中,如果我给出以下内容,它似乎有效。

      <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.0.0</version>
      </plugin>

插件不需要groupId吗? 如果不给groupId,maven如何下载插件?

谢谢

在pom.xml中你可以通过groupId, artifactId 和version 来定义一个插件。但是对于 groupId,在 Maven 4.0.0 XSD file 中定义了一个默认值。如果你看一下插件的定义(这里是 XSD 文件的摘录):

<xs:complexType name="Plugin">
<xs:annotation>
<xs:documentation source="version">4.0.0+</xs:documentation>
<xs:documentation source="description"> The <code>&lt;plugin&gt;</code> element contains informations required for a plugin. </xs:documentation>
</xs:annotation>
<xs:all>
<xs:element minOccurs="0" name="groupId" type="xs:string" default="org.apache.maven.plugins">
<xs:annotation>
<xs:documentation source="version">4.0.0+</xs:documentation>
<xs:documentation source="description">The group ID of the plugin in the repository.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="artifactId" type="xs:string">
<xs:annotation>
<xs:documentation source="version">4.0.0+</xs:documentation>
<xs:documentation source="description">The artifact ID of the plugin in the repository.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="version" type="xs:string">
<xs:annotation>
<xs:documentation source="version">4.0.0+</xs:documentation>
<xs:documentation source="description">The version (or valid range of versions) of the plugin to be used.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="extensions" type="xs:string

在那里您可以看到为 groupId 定义了默认值 org.apache.maven.pugins。这意味着每次您未在区域 pluginReportPlugin 中定义 groupId 时,它将自动使用 groupId。 org.apache.maven.plugins为此。

mentioned search for plugins is something different。这是从命令链接调用插件目标的情况,如下所示:

mvn versions:set ...
mvn help:help ...

默认情况下,将在两个 groupId 中搜索给定名称:org.apache.maven.pluginsorg.codehaus.mojo。插件本身的名称是根据两种命名模式 maven-${prefix}-plugin 搜索的,这是在 Apache 软件基金会中开发的所有 Maven 插件的情况(including the trade mark of the ASF 与该命名空间相关,其中还包括 groupId)和第二个命名模式 ${prefix}-maven-plugin.