2012-03-09 2 views
1

일부 메소드 사용 중에는 (오류/경고 표시)를 금지하는 Eclipse/Plugin이 있습니다. 내 코드에서 System.currentTimeMillis()/Calendar.getInstance() 누군가가 이것을 사용하려고 시도하는 경우 누군가에 의해 호출되지 않는다는 것을 확인하는 방법을 원한다. eclipse는 오류를 표시해야한다.개발자가 Eclipse에서 일부 API를 사용하는 것을 금지합니다.

감사 Ankush

답변

2

FindBugs API를 사용하여 메서드 호출 (바이트 코드에서 찾을 수있는 다른 opcode)에 대한 메타 데이터를 제공하는 자체 FindBugs 플러그인을 작성할 수 있습니다. 귀하의 경우에는 작업에 금지 된 API 집합 (System.currentTimeMillis()Calendar.getInstance())이 실행되는지 확인하는 맞춤 BytecodeScanningDetector을 구체적으로 구현해야합니다.

Here's a tutorial FindBugs 플러그인을 작성하는 데 도움이됩니다. Eclipse에서이 플러그인을 사용할 수 있지만 빌드의 일부로 CI 서버에서 실행하는 것이 좋습니다.

PMD와 같은 다른 정적 분석 도구에는 자체 API를 사용하여 노출 된 동일한 기능이있을 수도 있습니다.

또한 빌드의 일부로 만이 파일을 실행하려면이 검사를 소나 (sonar)에 위임하면됩니다.이 검사는 easy construction of architectural rules like these을 허용합니다. 참고 - 메서드에서이 메서드를 사용하지 않았으므로 메서드 사용 대신 전체 클래스 용도를 금지하려는 경우 Sonar 아키텍처 제약이 더 적합하다고 나타납니다.

0

이클립스는 IDE입니다. Java 컴파일러가 포함 된 경우도 있지만 Eclipse 외부에서 실행되는 다른 Java 컴파일러도 많이 있습니다. Eclipse는 Java 컴파일러에서 반환 된 오류를 표시합니다 (IDE 자체는 오류가 발생하지 않습니다).

가장 좋은 방법은 프로젝트 내에서 참조를 검색하는 Eclipse의 기능을 사용하는 것입니다. 수동 프로세스이지만 원하는 내용에 대한 대부분의 참조를 찾을 수 있습니다. 물론 누군가 리플렉션을 사용하면 모든 베팅이 해제됩니다.

관련 문제