【问题标题】:About maven plugin version tag关于maven插件版本标签
【发布时间】:2015-06-08 06:36:11
【问题描述】:

我们都知道,当我们在mavenpom.xml中使用插件或依赖时,我们必须给出GAV(groupId, artifactId, version)。那个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?

【问题讨论】:

    标签: maven


    【解决方案1】:

    您不必指定版本的原因是因为它继承自 Maven 超级 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 插件。

    【讨论】:

    • groupId 定义在pom.xsd
    • 非常感谢!我知道了!
    猜你喜欢
    • 2014-08-01
    • 2012-08-13
    • 2021-05-20
    • 2015-07-11
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2013-06-18
    相关资源
    最近更新 更多