2010-08-04 64 views
6

這是我的父母pom.xml文件(的一部分)在一個多模塊項目:如何使用javadoc:在多模塊maven項目中正確聚合?

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

這個插件是繼承了所有的子模塊,我不認爲這是一個正確的做法。當我運行mvn javadoc:aggregatetarget/site/apidoc生成的文件,但日誌已滿警告:

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

我在做什麼錯?

回答

10

您需要啓用聚集這個插件:

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

在命令行輸入:

mvn javadoc:aggregate 

編輯:

好吧,我做了一些挖成Maven插件的JIRA,發現所有javadoc插件mojos都已用@aggregator註釋過。但是,似乎與Maven的聚合器對已經立案here

還有一些相關的錯誤herehere和問題的問題更多一些

這似乎是一個攔截器的問題與Maven的聚合,因爲像一些插件例如三葉草不會跑。

要總結,你沒有做錯什麼

只需切換回舊版Maven的Javadoc的插件,不使用@aggregator魔力註釋,你不會得到警告(除非你是使用javadoc插件的某些功能在早期版本中不可用)

在附註中,如果運行javadoc插件作爲報告,那麼忽略@aggregator。

+3

'aggregate'配置參數已棄用:http://maven.apache.org/plugins/maven-javadoc-plugin/aggregate-mojo.html#aggregate – yegor256 2010-08-04 12:18:25

+0

@FaZend您還沒有指定javadoc插件版本以及maven版本。它在2.5版中已被棄用。無論如何,我沒有意識到這個事實 – naikus 2010-08-04 13:31:50

+0

@ FaZend.com,我已經更新了我的答案並提供了更多詳細信息 – naikus 2010-08-04 13:55:20

相關問題