2014-09-24 2 views
2

Мой родитель ПОМ exlicitly объявляет зависимость от Maven-JavaDoc-плагин 2.9.1 в обоихПочему Maven использует неправильный плагин, несмотря на явную версию плагина и pluginManagement?

<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:perform и http://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-плагин какую-либо другую зависимость? –

+0

Как это сделать? Я запускал зависимость mvn: разрешать-плагины, и он сообщает 2.9.1 – djb

+0

Я «исправил» проблему, удалив мой файл ~/.m2/repository/org/apache/maven/plugins/maven-javadoc-plugin. Я не пишу это как ответ на вопрос; Я все равно хотел бы видеть лучшую зависимость от Maven: инструменты для отображения цепочек зависимостей (т. Е. Какой плагин «принудительно» использовал 2.10 вопреки pom.xml). Надеюсь, шаги, которые я предпринял для диагностики, и обходной путь помогут другим. – djb

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^