关于maven插件版本标签

时间:2015-06-08 06:36:11

标签: maven

我们都知道,当我们在maven pom.xml中使用插件或依赖时,我们必须提供GAV(groupId,artifactId,版本)。这个maven可以知道你想要的插件或依赖。
例如:

<!-- generate source plugin -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.4</version>
    <!-- ...others config -->
</plugin>

但是,如果我这样写:
例如:

<!-- generate source plugin -->
<plugin>
    <artifactId>maven-source-plugin</artifactId>
    <!-- ...others config -->
</plugin>

这是对的!为什么?Maven说我们必须给GAV?为什么这是正确的,当我只给A?

所以我想知道如果我不给G和V,maven会使用什么G或V?

1 个答案:

答案 0 :(得分:1)

您不必指定版本的原因是因为它从Maven super POM(http://maven.apache.org/guides/introduction/introduction-to-the-pom.html)继承而来。此超级POM具有maven-source-plugin的定义,用于指定要使用的版本。

如果声明未在超级POM中声明的其他依赖项或插件,则需要该版本。但请注意,最好明确声明要在自己的pom.xml中使用的插件版本,以使您的构建更具可重现性。

在这种情况下,您可以省略组ID,因为如果没有指定groupId,maven会将org.apache.maven.plugins作为groupId进行搜索。所以这只适用于使用此组ID的官方Maven插件。