2011-12-27 11 views
5

私は、実行時に特定のAnnotationを持つすべてのメソッドのすべてのjavadocを取得する方法を探しています。 このjavadocを使用して、カスタムメイドのUIでこれらのメソッドの詳細を表示します。メソッド名とパッケージ/クラス名を持つ特定のAnnotationを持つすべてのメソッドのjavadocを取得するにはどうすればよいですか?

これらのメソッドは、後でテストのために使用されます。ユーザが決定した未知の順序で呼び出されます。ソースを参照せずにjavadocをユーザに見せたいと思っています。

はい、私はソースを持っており、目標を達成するためにそれらを使用できます。

私がこれを行うことについて考えた最善の方法は、実行時に読み込まれる説明付きの別のファイルを維持することですが、それはjavadocと外部ファイルの両方を維持する必要があることを意味し、かなり類似したテキストの2つのコピーを維持する。

すべての回答をお寄せください!おかげさまで

+0

解決済み。 javadocを使用してhtmlファイルを生成すると、実行時に読み込まれ、ユーザーに表示されます。すべてのヘルパーに感謝します! – eitama

答えて

2

のLuceneで作業することがいかに簡単であるかチェックしてください (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が読み取る1つ以上のXML文書(作成および解析が容易)に抽出します。
  5. プロセスを自動化してビルドに追加するAntタスクを作成します。
+0

私はもっと簡単な解決策を望んでいましたが、あなたが解決策を取って少し違ってしまいました。 – eitama

0

UIでこれを使用し、コードベースがかなり大きい場合は、javadocsのインデックスを作成し、インデックスに対して検索クエリを作成することを検討してください。 Solr、Lucene、Sphinxはあなたが利用できるテクノロジーのいくつかです。

JavaDocsを直接使用して読み込み可能なパフォーマンスを得ることはできません。それはjavadocがクラスファイルの一部ではないので、それが聞こえるように、これは同じくらい簡単ではありません、ここで http://www.lucenetutorial.com/lucene-in-5-minutes.html

0

多少の努力が必要ですが、

通常、javadocの作成は、CLIに達するユーティリティjavadocを実行することによって実現されます。 Annotation processor APIを使用してコンパイル時に呼び出すことができ、コンパイル済みのリソースと共に保存できます。それからあなたは実行時にそれを読むことができます。

注釈プリプロセッサの用途の美しい例として、this projectをご覧ください。

関連する問題