尽管有明确的插件和插件管理版本,为什么Maven使用了错误的插件?

时间:2014-09-24 19:02:00

标签: maven maven-dependency-plugin maven-javadoc-plugin

我的父pom 明确地声明对maven-javadoc-plugin 2.9.1的依赖

<pluginManagement>
   <plugins>
     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.9.1</version>
     </plugin>
        ...

    <reporting>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
         <version>2.9.1</version>
         ...

(请参阅Maven plugin version in pom (seemingly) ignored)和mvn help:effective-pom显示正在使用2.9.1。但是,构建使用2.10会导致构建失败(请参阅 maven-javadoc-plugin breaks mvn release:performhttp://jira.codehaus.org/browse/MJAVADOC-407

mvn help:describe -DgroupId=org.apache.maven.plugins \
                  -DartifactId=maven-javadoc-plugin

显示

    Name: Apache Maven Javadoc Plugin
    Description: The Apache Maven Javadoc Plugin is a plugin that uses the
      javadoc tool for generating javadocs for the specified project.
    Group Id: org.apache.maven.plugins
    Artifact Id: maven-javadoc-plugin
    Version: 2.10
    Goal Prefix: javadoc

同时,

mvn dependency:resolve-plugins

显示

[INFO] Plugin Resolved: maven-javadoc-plugin-2.9.1.jar

然而,当我运行构建时,mvn使用2.10代替,导致构建失败。

如何强制maven使用2.9.1而不是破坏2.10?

(我正在使用Maven 3.2.1)

1 个答案:

答案 0 :(得分:3)

确保您正在寻找正确的依赖关系。我们看到指定的2.9.1用于站点报告,但构建正在使用2.10。我相信你应该在你的

中指明它
  

<build><plugins>

部分。

我们刚刚确认我们遇到了同样的问题。我们在报告插件部分有插件版本,但没有构建插件。将它添加到构建插件部分后,问题就解决了。它需要在构建插件中的原因是因为它在准备部署阶段用于构建javadoc jar。这与为站点报告生成javadoc不同。