Maven2:如何确保Maven构建使用特定的插件版本?

时间:2009-08-27 15:19:08

标签: maven-2 maven-plugin

我刚发现Maven插件管理听起来很奇怪。

在处理网站生成时,我想使用特定版本的maven网站插件,以便具有特定的功能。 假设我想使用此插件的2.0.1版本。

如果我使用POM的报告部分,以便使用以下命令生成项目的网站:

mvn site

这很有效。我的意思是我使用的插件版本是2.0.1。以下是我的POM配置站点插件的摘录:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>2.0.1</version>
        </plugin>
    </plugins>
</reporting>

现在,如果我希望在构建生命周期的特定阶段生成我的站点,让我们说prepare-package(和目标阶段),我在以下部分添加以下部分:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>

        <executions>
            <execution>
                <phase>prepare-package</phase>
                <goals>
                    <goal>stage</goal>
                </goals>
            </execution>
        </executions>
     </plugin>
</plugins>

在这里,我坚持使用来自Super POM的maven网站插件版本,即。 2.0-β-7。 即使我尝试添加配置指定我真的想使用版本2.0.1它仍然使用2.0-beta-7。 我还尝试在该部分中添加该版本,因为报告部分中使用的配置也应该应用于构建部分。但这也不起作用。

也许我错过了什么,如果我错了就纠正我,但这看起来像个错误。 Maven方面是否需要修复在构建过程中使用的插件版本?

谢谢!

2 个答案:

答案 0 :(得分:7)

如果在pom中定义了pluginManagement部分,则可以声明用于任何插件的版本,这将覆盖从超级POM继承的版本

例如:

<pluginManagement>
  <plugins>
    <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <version>2.0.1</version>
    </plugin>       
  </plugins>
</pluginManagement>

您可以参考documentation了解有关配置pluginManagement的一些背景知识。

答案 1 :(得分:1)

我认为您需要使用“pluginManagement”部分来设置插件的全局版本号。