Как правильно использовать javadoc: агрегат в многомодульном проекте maven? - PullRequest
6 голосов
/ 04 августа 2010

Это мой родительский файл pom.xml (часть его) в многомодульном проекте:

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

Этот плагин унаследован во всех подмодулях, и я не думаю, что он правильныйподход.Когда я запускаю mvn javadoc:aggregate, документация генерируется в target/site/apidoc, но журнал полон предупреждений:

...
[WARNING] Removing: aggregate from forked lifecycle, 
to prevent recursive invocation.
...

Что я делаю не так?

1 Ответ

10 голосов
/ 04 августа 2010

Вам нужно включить агрегирование для этого плагина:

  <plugin>
    <artifactId>maven-javadoc-plugin</artifactId>
    <configuration>
      <aggregate>true</aggregate> <!-- this enables aggretation -->
    </configuration>
  </plugin>

В командной строке типа:

mvn javadoc:aggregate

Редактировать:

Хорошо, я кое-что покопался вjira плагина maven и обнаружил, что все jjadoc плагины были помечены @aggregator.Но, похоже, есть проблемы с агрегатором maven, проблема для которого была подана здесь

Есть также связанные ошибки здесь и здесь иеще немного

Похоже, это проблема блокировщика с агрегатором maven, поскольку некоторые плагины, такие как, например, Clover, не будут работать.

Чтобы подвести итог, вы ничего не делаете неправильно

Просто переключитесь на более ранние версии maven-javadoc-plugin, который не использует аннотацию @aggregator mojo, и вы не получите предупреждения (если вы не используете определенную функцию плагина javadoc, которая не была доступна в более ранней версии)

С другой стороны: если вы запускаете плагин javadoc как отчет, то @aggregator игнорируется.

...