簡體   English   中英

如何從javadoc Ant任務的結果中排除特定的方法/構造函數?

[英]How do I exclude a specific method/constructor from the results of the javadoc Ant task?

我正在使用由javadoc Ant任務生成的javadocs來記錄Web服務,並且我想從輸出中排除一些構造函數。 我怎么做?

對於公共方法,這是沒有辦法的。 標准實踐(即使在相當多的JDK類中)也表明該方法或構造函數不適合公共使用。

計划在將來添加@exclude標簽

@exclude-用於將Javadoc從生成中排除API。 程序員將使用@exclude標記類,接口,構造函數,方法或字段。 標簽的存在將導致API從生成的文檔中排除。 標簽后面的文字可以解釋排除的原因,但Javadoc將忽略它。 (以前建議使用@hide,但術語“ hide”更適合於運行時動態顯示/隱藏功能。)有關更多討論,請參見:Developer Connection中的功能請求#4058216

請參閱相關的Javadoc FAQ條目

當前沒有Javadoc選項可以從javadoc生成的文檔中隱藏,排除或禁止公共成員。

看起來這在原始 Javadoc中是不可能的,但是提供了一些解決方法。

是不是從文檔中排除了一些公開的內容,而僅僅是“通過隱蔽性實現安全性”(或者“通過隱蔽性進行文檔化”)的變體? 如果構造函數是代碼API的一部分,則可供他們使用。 如果他們發現並使用了它,那是他們的錯嗎(因為您首先公開了它)?

如果您可以更改構造函數的可見性或完全刪除它,那么我會這樣做。 如果您無法將其從API中刪除,請在Javadoc中讓構造函數知道它不打算通過Web服務使用。 這樣,您已經與API用戶建立了合同,通知他們不要使用它。

最好記錄一下不應使用它,而不是根本不記錄它(如果它是公開的)。 不記錄它會增加無意使用它的風險,然后當您更改實現時,使用它的客戶端代碼就會中斷。

更改方法的方法訪問級別,然后使用javadoc任務的訪問級別過濾屬性, privatepackage等。僅在代碼中有意義的情況下才執行此操作,例如,訪問級別不適當的方法。

例如,對於構造函數,您可以降低對package的訪問級別,然后在提供該包外部構造訪問權限的同一包中創建一個工廠類。 可以從javadocs中輕松過濾出工廠類。 有點hacky,但是可以用。

嘗試Chris Nokleberg的ExcludeDoclet: http//www.sixlegs.com/blog/java/exclude-javadoc-tag.html

我一直在嘗試它,它似乎可以解決問題。

目前最簡單的辦法是先從javadoc注釋@deprecated ,然后通過-nodeprecatedjavadoc命令。 當然,如果您有實際已棄用的物品但仍希望包含在文檔中,則這可能是不可接受的。

我得到的結果是使用Doclava ,它具有@hide標記,您可以在方法文檔中指定該標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM