2011-12-27 96 views
5

我正在尋找一種方法來在運行時爲具有特定註釋的所有方法提取所有javadoc。 我將使用此javadoc在自定義UI中顯示有關這些方法的詳細信息。如何獲得具有特定註釋的所有方法的javadoc,方法名稱和包/類名稱?

這些方法稍後用於測試,它們將以未知的順序調用,由用戶決定 - 我希望讓用戶看到javadoc而不必瀏覽源代碼。

是的,我有來源,可以使用它們來實現目標。

我認爲這樣做的最好方法是維護一個帶有描述的單獨文件,這些文件將在運行時讀取,但這意味着我必須同時維護javadoc和外部文件,而且我不喜歡保持兩份非常相似的文本。

歡呼任何答案! 謝謝。

+0

已解決。 使用javadoc生成html文件,這些文件在運行時讀取並顯示給用戶。感謝所有的幫手! – eitama 2012-01-03 06:51:39

回答

2

與Lucene的工作這不是那麼簡單,因爲它的聲音,因爲JavaDoc的不是類文件的一部分(上有java.lang.reflect.Method沒有getJavaDoc()方法)。

我進攻的問題是這樣的:

  1. 下載Eclipse JDT。它包含Eclipse Java編譯器(將org.eclipse.jdt.core_*.jar添加到您的類路徑中,「Using the batch compiler」可能也有幫助)。
  2. 請看這裏how to get an AST from Java sources using the Eclipse compiler
  3. AST包含源代碼:您可以看到註釋,參數名稱和所有內容。要收集JavaDoc,請使用AstVisitor
  4. 將您需要的所有內容提取到您的UI讀取的一個或多個XML文檔(易於創建和解析)。
  5. 創建一個Ant任務來自動執行該過程並將其添加到您的構建中。
+0

我希望有一個更簡單的解決方案,但你的解決方案驅使我做一點點不同。 – eitama 2012-01-03 06:51:00

0

如果您打算在UI中使用它,並且您的代碼庫相當大,那麼您可能需要考慮索引javadoc並在索引上創建搜索查詢。 Solr,Lucene,獅身人面像是你可以利用的技術中的一小部分。

我懷疑你可以通過直接使用JavaDocs來獲得可接受的性能。 看看它是多麼容易在這裏 http://www.lucenetutorial.com/lucene-in-5-minutes.html

0

這是可能的,但需要一些努力。

通常創建javadoc是通過運行已經到達CLI的實用程序javadoc來實現的。 您可以在編譯時使用Annotation處理器API調用它,並將其與編譯的資源一起存儲。然後你可以在運行時閱讀它。

請看this project作爲註釋預處理器使用的一個很好的例子。

相關問題