我正在尝试识别注释名称相同或相似的位置,以编译这些内容的列表,以确保我们的团队知道哪里可以找到混淆点。例如,Guice @provides和RESTeasy @provider在拼写方面相似,但语义上的差异足以使人们感到困惑,因此我想明确地说出来并解释其中的差异。
我正在寻找的是一个工具,甚至是一个枚举与包相关的注释的网站。这可能是一个梦想,但在我手动开始并收集这些东西之前,我想我会检查。
我正在考虑编写一个基于Javadoc的版本,它只是简单地引入了注释,但在很多情况下我无法访问Java源文件。
有任何想法或建议吗?
答案 0 :(得分:1)
在Eclipse中,您可以使用标准方法“搜索引用”(已使用注释的上下文菜单引用 - > 项目),您将获得一个列表注释在您的项目中使用。
答案 1 :(得分:1)
我建议您自己扫描注释并为其生成列表。
您可以通过编写自己的注释处理器实现来实现,即扩展AbstractProcessor。在此处理器中,您可以编写包含所有注释的文本文件。您可以将此处理器添加到构建过程中,然后在构建项目时执行处理器。
另一种方法是使用Google Reflections库。这可能需要更多工作,因为您需要编写一个小程序来获取注释并编写文件。
答案 2 :(得分:1)
我写了这样一个工具:https://github.com/MoserMichael/ls-annotations
它反编译字节码并仅列出带有注释的声明(类、函数、变量)。您还可以使用它来查找从给定类/接口派生的所有类/接口 - 以及从给定类/接口派生的所有类/接口。
该工具使用 asm library 来扫描类文件并提取注释。它可以检测带有保留策略 CLASS 和 RUNTIME 的注释。它无法检测带有未放入字节码的保留策略 SOURCE 的注释,例如 @Override 就是其中之一。
答案 3 :(得分:0)
为什么不扫描类路径并导出所有使用的注释?然后只需使用一些简单的解析/文本比较来查看具有几乎相同名称的元素?