안녕하세요 저는 자바 소스 코드의 정적 분석을 시작하고 싶었습니다. 시작으로, 내 소스 트리를 직접 파싱하는 것이 가장 간단한 것처럼 보이지만, 여기에는 API가 있다고 가정합니다. 특히이 이와 같은 코드를 허용하는 API가 좋을 것이다 :Java 정적 분석 : 시작하기
물론for (MetaClass m : mySourcePackage.getClasses())
{
System.out.println(m.getMethods().size());
...
}
, 특정 클래스에 대해, 당신은 반사를 사용하여이 작업을 수행 할 수 있습니다 -하지만 난 정적으로 전체를 분석에 더 관심이 있어요 소스 코드 패키지를 처음부터 수정하고 클래스를 하나씩 반복합니다 (예 : 테스트 커버리지, 최대 라인 등을 평가하는 등).
그런 메타 분석을위한 고품질의 오픈 소스 프레임 워크가 있습니까? (또는 특정 클래스 경로로 JVM을 시작하고 JVM 내부에서 그러한 분석을 수행 할 수 있습니까?)
나는 특히 DI와 반사 (적어도 지금 시점이 아님)와 같은 싫어 함을 걱정하지 않는다는 것을 명심하십시오.
* Java 소스를 파싱 * ANTLR에 기성품 [문법] (http://openjdk.java.net/projects/compiler-grammar)이 있습니다. /antlrworks/Java.g). 또한 바이트 코드 분석을 고려하십시오. 놀랍게도 쉽게 찾을 수 있습니다. –
JAva -> Java .. 제목을 수정하십시오;) – h3xStream