2014-09-24 59 views
2

我的父POM exlicitly声明在两个尽管显式插件和插件管理版本Maven为什么使用错误的插件?

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

上行家-Javadoc的插件2.9.1依存性
<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)

+0

你检查过全依赖关系树,看一些其他的依赖也被导入的javadoc插件? – 2014-09-24 19:07:13

+0

我该怎么做?我跑MVN依赖:解决-插件,并通过删除我的〜/ .m2目录/库/组织/阿帕奇/行家/插件/ Maven的Javadoc的插件报告2.9.1 – djb 2014-09-24 19:28:02

+0

我“固定”的问题。我不是在写这个作为问题的答案;我仍然希望看到更好的Maven依赖关系:显示依赖关系链的工具(即,与pom.xml相反,哪个插件'强制使用2.10“)。希望我采取的诊断步骤和解决方法可以帮助其他人。 – djb 2014-09-24 21:14:17

回答

2

要确保你正在寻找正确的依赖。我们已经看到2.9.1正在被用于网站报告,但2.10正在被构建中使用。我相信你应该在你的

<build><plugins>

部分指定它。

我们只是证实了我们遭受了同样的问题。我们在报告插件部分有插件版本,但没有构建插件。一旦我们将其添加到构建插件部分,问题就解决了。它需要在构建插件中的原因是因为它正在准备部署阶段用来构建一个javadoc jar。这与为站点报告生成javadoc分开发生。

+0

我也试过了,mvn help:描述还是显示版本:2.10 - 奇怪!但正如将它添加到pluginManagement一样,构建成功,-X显示maven-javadoc-plugin:2.9.1:javadoc(一旦我的回购被清除)。我想所有在一起,这是足够的答案 – djb 2014-09-25 16:34:57