多模塊Maven項目怎樣使用javadoc插件生成文檔


需求

        近期要對一個項目結構例如以下的Maven項目生成JavaDoc文檔。

                Project
                        |-- pom.xml
                        |-- Module1
                                |   `-- pom.xml
                        |-- Module2
                                |   `-- pom.xml
                        |-- Module3
                                |-- pom.xml

        這個就須要用到本文將要提出的一個Maven插件:javadoc。



基本使用

        插件的基本配置非常easy:

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

        假設對於一個普通的Maven項目,那么這個配置就能夠讓你輸出一個JavaDoc文檔了(使用javadoc:javadoc命令)。


多模塊Maven項目

        而我們如今是一個多模塊的Maven項目,那么就須要一些額外的配置來完畢此操作:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-javadoc-plugin</artifactId>
	<version>2.9.1</version>
	<configuration>
        <aggregate>true</aggregate>
	</configuration>
</plugin>

        就是一個aggregate設置為true,就能夠讓你在父項目執行javadoc:javadoc的時候,就會將子模塊的JavaDoc生成在父項目的target下,而且會將其整合成一個JavaDoc。


自己定義標簽

        如今問題來了:

        我們的類中的方法凝視例如以下

/**
 * @author     : 張三
 * @group      : group
 * @Date       : 2014-01-26 21:14:49
 * @Comments   : 頁面所含操作增刪改查的ejb接口
 * @Version    : 1.0.0
 */
public interface IOperationBean {
	    /**
	     * @MethodName	: getOperationByID
	     * @Description	: 依據Id獲得頁面所含操作
	     * @param ID 頁面所含操作ID
	     */
	     PageOperation getOperationByID(String ID);
}

        而我們在生成JavaDoc后,並沒有看到Description和MethodName這兩個注解中相應的內容。也就導致了方法的說明不翼而飛了。

        經過實驗,要想像jdk那樣讓方法的描寫敘述緊跟在方法名后面,是須要這樣加入凝視的:

/**
 * 依據Id獲得頁面所含操作
 * @param ID 頁面所含操作ID
 */
 PageOperation getOperationByID(String ID);

        已經到了項目后期。如今再讓大家去改這些有些說只是去,查了下官網,發現有自己定義標簽。正好解決的就是這種問題。

        而這次問題的出現。還是源於我們對於JavaDoc生成不熟悉。

        廢話不多說,直接看樣例:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-javadoc-plugin</artifactId>
	<version>2.9.1</version>
	<configuration>
        <aggregate>true</aggregate>
        <tags>
            <tag>
                <name>Description</name>
                <placement>a</placement>
                <head>用途</head>
            </tag>
        </tags>
	</configuration>
</plugin>

        說明:

        1.name為你Java代碼中的注解的名字

        2. placement這個在官網上有8種,我也自己試了下。事實上這個就是說你要把哪些(方法、字段、類)上面的注解放到JavaDoc中

        3.head。假設不寫這個,用的就是name,假設寫了,那么顯示效果例如以下:

                

        這樣。你就既能夠定義自己的凝視規范。又能夠生成對應的JavaDoc文檔了

自己定義路徑

        這個功能一般不會用到,僅僅是順便看了一下。就寫下來吧。


        在這里須要叨念兩句關於約定優於配置,在最初我用Maven的時候,就看到過這種話,Maven文件夾能夠不這樣設置么?能夠,你能夠自己改。
        僅僅能說我們在大部分時候,是不須要改這個,但不意味着我們在做的時候就能夠把這個做死,這樣於用戶,於今后的維護來說,都不是一個好的選擇。
        兩句叨念完了,如今來看怎么設置吧:
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-javadoc-plugin</artifactId>
	<version>2.9.1</version>
	<configuration>
        <reportOutputDirectory>../myoutput</reportOutputDirectory>
        <destDir>myapidocs</destDir>
	</configuration>
</plugin>

        說明:
        1.reportOutputDirectory是說的路徑
        2.destDir是說的目標目錄
        
        到這里Maven多模塊下使用javadoc插件生成JavaDoc文檔過程中遇到的問題就都攻克了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM