2011-12-27 62 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作为注释预处理器使用的一个很好的例子。

相关问题