关于maven插件版本标签
Posted
技术标签:
【中文标题】关于maven插件版本标签【英文标题】:About maven plugin version tag 【发布时间】: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?
【问题讨论】:
【参考方案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 非常感谢!我知道了!以上是关于关于maven插件版本标签的主要内容,如果未能解决你的问题,请参考以下文章
Maven 发布插件 - 准备创建快照版本而不是发布版本的标签