Java 以编程方式在整个工作区中查找接口的引用
只是想知道哪种工具/方法可以轻松/省力地解决以下问题?需要通过ANT脚本进行调用 eclipse工作区有几个项目,比如projectA-projectO(15个)。其中大多数是Java项目。这里我需要收集一些数据,而不使用EclipseIDE,而是通过编程方式 在projectA中,它是一个java项目,有一个接口,比如说InterFaceA,它正在各种其他项目中实现 重点是我需要列出所有15个已经实现InterfaceA的项目中的所有类 我遇到了两个工具,比如扩展Javadoc、EclipseAST、javaCC、ANTLR,但没有找到现成的解决方案 考虑了以下方法,但发现很难实现Java 以编程方式在整个工作区中查找接口的引用,java,eclipse,parsing,abstract-syntax-tree,javacc,Java,Eclipse,Parsing,Abstract Syntax Tree,Javacc,只是想知道哪种工具/方法可以轻松/省力地解决以下问题?需要通过ANT脚本进行调用 eclipse工作区有几个项目,比如projectA-projectO(15个)。其中大多数是Java项目。这里我需要收集一些数据,而不使用EclipseIDE,而是通过编程方式 在projectA中,它是一个java项目,有一个接口,比如说InterFaceA,它正在各种其他项目中实现 重点是我需要列出所有15个已经实现InterfaceA的项目中的所有类 我遇到了两个工具,比如扩展Javadoc、Eclipse
- 找出所有声明的变量、字段、方法级别,即整个java文件/类,找出它们的类型,并在其中找出实现InterfaceA的类
- 像eclipse这样的东西会在interfaceA的整个工作区中找到引用吗,但是通过代码?如果我能得到eclipse如何如此快速地实现这一点的源代码,我将不胜感激
提前感谢。对我来说,最简单的方法就是在Linux shell中使用grep和wc等工具来实现这一点。 GREP会让你找到你喜欢的任何类型的模式(毕竟你有源代码,所以挖掘它应该不会有任何问题),即“implements InterFaceA”或“extensed SomeClassB”。 由于WC,您可以计算模式的出现次数。两者的结合将给你带来巨大的可能性 例如:
grep-iR'implements Serializable'*
grep-iR'implements Serializable'*| wc-l
grep-iR'implements Serializable'*| grep-v.svn | wc-l
希望能有所帮助。一般来说,这是一个依赖关系分析/管理的问题 已存在多个工具/主题:
- 在谷歌搜索“eclipse依赖关系图”
可序列化的类,因为它不会找到在实现
和可序列化
之间有多个空格的源文件(或者,更糟糕的是,它们之间的注释和/或换行符),也不是包含实现列表的源文件、可序列化的
,也不是扩展实现可序列化的
的类的类,也不是实现扩展可序列化的
接口的类。这是正确的。我想提供如何实现这一点的一般思路。正则表达式本身应该很好被认为提供了最精确的匹配。这是一个非常糟糕的想法,像Java、C/C++/C#或Ada这样的复杂源代码不能很好地用词汇工具分析,而只能用语法工具分析