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><plugin></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
。这意味着每次您未在区域 plugin
和 ReportPlugin
中定义 groupId 时,它将自动使用 groupId。 org.apache.maven.plugins
为此。
mentioned search for plugins is something different。这是从命令链接调用插件目标的情况,如下所示:
mvn versions:set ...
mvn help:help ...
默认情况下,将在两个 groupId 中搜索给定名称:org.apache.maven.plugins
和 org.codehaus.mojo
。插件本身的名称是根据两种命名模式 maven-${prefix}-plugin
搜索的,这是在 Apache 软件基金会中开发的所有 Maven 插件的情况(including the trade mark of the ASF 与该命名空间相关,其中还包括 groupId)和第二个命名模式 ${prefix}-maven-plugin
.
在我的 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><plugin></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
。这意味着每次您未在区域 plugin
和 ReportPlugin
中定义 groupId 时,它将自动使用 groupId。 org.apache.maven.plugins
为此。
mentioned search for plugins is something different。这是从命令链接调用插件目标的情况,如下所示:
mvn versions:set ...
mvn help:help ...
默认情况下,将在两个 groupId 中搜索给定名称:org.apache.maven.plugins
和 org.codehaus.mojo
。插件本身的名称是根据两种命名模式 maven-${prefix}-plugin
搜索的,这是在 Apache 软件基金会中开发的所有 Maven 插件的情况(including the trade mark of the ASF 与该命名空间相关,其中还包括 groupId)和第二个命名模式 ${prefix}-maven-plugin
.