2015-06-08 64 views
0

我们都知道,当我们使用插件或依赖于Maven的pom.xml,我们必须给GAV(的groupId,artifactId的版本)。那Maven可以知道什么插件或依赖你想要的。
如:关于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为什么这是正确的,当只有我!?给一个?

所以我想知道,如果我不给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,因为Maven会为org.apache.maven.plugins为的groupId如果没有指定的groupId SEACH。所以这只适用于使用这个组ID的官方Maven插件。

+0

出GroupID在[pom.xsd]中定义(http://maven.apache.org/xsd/maven-4.0.0.xsd) – khmarbaise