해결책을 찾았습니다. 모든 파일을 찾으려면 재귀 함수를 사용하여 sourceDirectory를 반복합니다.
/**
* Project's source directory as specified in the POM.
*
* @parameter expression="${project.build.sourceDirectory}"
* @readonly
* @required
*/
private final File sourceDirectory = new File("");
fillListWithAllFilesRecursiveTask(sourceDirectory);
나는 그 파일의 경로를 얻을 후 나는 관련 FileInputStream에 구문 분석 com.google.code.javaparser를 사용 : 내 모조에서의 SourceDirectory을 얻는 방법은 다음과 이다.
public void fillListWithAllFilesRecursiveTask(final File root) {
CompilationUnit cu;
FileInputStream in;
try {
// we looped through root and we found a file (not a directory)
in = new FileInputStream(file);
cu = JavaParser.parse(in);
new MethodVisitor().visit(cu, file);
마지막으로, 나는 등 ... VoidVisitorAdapter가 주석과 회원을 얻기 위해 확장
private static class MethodVisitor extends VoidVisitorAdapter<File> {
@Override
public void visit(ClassOrInterfaceDeclaration n, File file) {
if (n.getAnnotations() != null) {
// store classes that are annotated
for (AnnotationExpr annotation : n.getAnnotations()) {
//here some logic
}
} ...