2017-01-16 4 views
1

저는 이것을 Intellij can scan으로 알고 있습니다. 고대 프로젝트 인 Scannotation이있는 것 같습니다. 이들 중 어느 것도 내가 원하는 것을 수행하지 않는다.사용하지 않는 모든 클래스를 파일에 나열하는 방법은 무엇입니까?

@Deprecated으로 표시된 클래스의 전체 패키지 이름을 내 코드베이스에 나열하고 싶습니다.

내 질문 : 사용하지 않는 모든 클래스를 파일에 나열하는 방법은 무엇입니까? 유닉스/리눅스 시스템에서

답변

0

이 사용할 수있는 것입니다 :이와

package util; 

    import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner; 
    import io.github.lukehutch.fastclasspathscanner.matchprocessor.ClassAnnotationMatchProcessor; 

    public class AnnotationScanTest { 


     public static void main(String args[]) throws ClassNotFoundException { 


      new FastClasspathScanner("com") 
        // Optional, in case you want to debug any issues with scanning. 
        // Add this right after the constructor to maximize the amount of log info. 
        .verbose() 
        // Add a MatchProcessor ("Mechanism 1") 
        .matchClassesWithAnnotation(Deprecated.class, new ClassAnnotationMatchProcessor() { 
         @Override 
         public void processMatch(Class<?> matchingClass) { 
          System.out.println("Matching annotation: " + matchingClass); 
         } 
        }) 
        // Actually perform the scan (nothing will happen without this call) 
        .scan(); 
     } 

    } 
0

당신이 sed 또는 다른 텍스트 편집기로 표기을 패키지로 변경 될 수 있습니다 절대 경로와 파일의 목록을 줄 것이다 find . -name *.java -regex "@Deprecated"

를 사용할 수 있습니다.

Windows에서 git을 설치하면이 명령을 실행할 수있는 bash가 생깁니다.

+1

문제를, 또한 더 이상 사용되지 않는 메소드가있는 파일을 나열합니다 (전체 클래스가 사용되지 않음) –

+0

이것은 훌륭합니다. 클래스 선언 전에 완벽하게 처리 할 수 ​​있도록 수정하십시오. – hawkeye

0

Structural Search을 사용할 수 있습니다.

CTRL + SHIFT + A ->Search Structurally

사용이 모두 사용되지 않는 클래스를 찾을 수 :

@Deprecated 
class $class$ { 
}