3

我想使用Maven爲我的應用程序創建站點。這是一個多模塊應用程序,父模塊是簡單的網站模塊,第一個孩子是應用程序的核心,第二個是GUI(Swing)。使用javadocs的Maven多模塊項目站點

我現在使用遵循父pom.xml的

<modules> 
    <module>core</module> 
    <module>kayako-desktop</module> 
</modules> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <locales>en</locales> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <phase>install</phase> 
        <goals> 
         <goal>aggregate</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
<reporting> 
    <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <aggregate>true</aggregate> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-changes-plugin</artifactId> 
      <version>2.4</version> 
     </plugin> 
    </plugins> 
</reporting> 

我核心的POM:

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <id>attach-javadocs</id> 
        <goals> 
         <goal>jar</goal> 
         <goal>javadoc</goal> 
        </goals> 
       </execution> 

      </executions> 
     </plugin> 
    </plugins> 
</build> 
<reporting> 
    <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <links> 
        <link>http://download.oracle.com/javase/6/docs/api/</link> 
       </links>  
      </configuration> 
     </plugin>  
    </plugins> 

</reporting> 

(我去掉了從兩個不相關的部分)

的問題:我想MVN site:stage,但javadoc不是從核心模塊收集的。我錯了什麼?

+0

看到這個相關的問題:http://stackoverflow.com/questions/3404322/how-to-use-javadocaggregate-properly-in-multi-module-maven-project – 2013-03-19 05:23:58

回答

2

在父pom中配置maven-site-plugin的配置的<reportPlugins>部分中的javadoc插件。

這是我的工作。

在父POM:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <reportPlugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-javadoc-plugin</artifactId> 
         <version>2.9</version> 
         <reportSets> 
          <reportSet> 
           <id>aggregate</id> 
           <reports> 
            <report>aggregate</report> 
           </reports> 
          </reportSet> 
         </reportSets> 
         <configuration> 
         <!-- Here you can add special configurations for your javadoc, if needed --> 
         </configuration> 
        </plugin> 
        <!-- Here you can also configure more report plugins --> 
        <!-- for your site, such as maven-project-info-reports-plugin --> 
       </reportPlugins> 
      </configuration> 
     </plugin> 
    <!-- ... --> 
    </plugins> 
</build> 
<!-- ... --> 
<distributionManagement> 
    <site> 
     <id>website</id> 
     <url>http://site.url/can/be/tentative/or/hypothetical</url> 
    </site> 
</distributionManagement> 

在每個子多金屬氧酸鹽,你還可以配置網站插件的具體報告,例如,萬無一失測試報告或項目信息。但是,您不需要在其中放置任何javadoc插件配置(除非您還希望爲您的子模塊使用非聚合的javadoc)。

然後,您應該能夠從父目錄中執行mvn site site:stage。要查看聚合的javadoc,請將瀏覽器指向該目錄中的target/staging/index.html,然後單擊頁面左側索引中的「Project Reports」,然後單擊「JavaDocs」。

額外的小費:

有時候我想在聚合的javadoc立馬而不要做一個完整的site site:stage,它做更多的東西,需要更長的時間。因此,我還直接在父pom的<plugin>部分中包含maven-javadoc插件的配置。這樣,我可以運行mvn javadoc:aggregate並快速獲取target/site/apidocs/index.html中的聚合javadoc。

+0

謝謝。提到的項目不再是我的項目,但我會在另一個項目中使用您的提示。而我並不知道網站:之前的舞臺目標,這非常有用! – 2013-07-11 12:35:58