2011-04-08 3 views

답변

0

PMD 할 수 있습니다. 상자 밖에서 확신 할 수는 없지만 그러한 규칙을 구현하는 것은 그렇게 어렵지 않습니다. import-rules을 시작할 수 있습니다. PMD 플러그인은 Eclipse, Ant 및 기타 IDE 및 빌드 도구 용으로 제공됩니다.

2

시도 CheckStyle. 그것은 개발자에게 시행 할 수있는 많은 옵션을 가지고 있습니다.

+0

+1. 그들의 'IllegalImport' 모듈은 적어도 클래스 당 레벨에서 청구서에 부합하는 것 같습니다. – Thilo

1

조금 더 복잡하면 AspectJ을 사용하고 있습니다.하지만 프로그래밍 할 수있는 '규칙'이 많이 있습니다. 매우 맞춤형 코딩 가이드 라인 규칙 적용을 위해 AspectJ를 사용하는 방법에 대한 예제는 this blog post of mine을 참조하십시오.

+0

AspectJ가 절대적으로 (+1) –

+0

이 방법을 사용하여 java.util.Hashtable (소스에 주석을 달 수없는 클래스)에 대한 참조를 금지 할 수 있습니까? – Thilo

+0

물론 [call] (http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html) pointcut을 사용하십시오. –

0

위의 답변 외에도이를 달성하기위한 또 다른 방법이 있습니다. 커스텀의 SecurityManager를 정의합니다. 자세한 내용은 checkPackageAccess()을 참조하십시오.

+0

그건 런타임에, 그렇지? 컴파일 시간을 확인해야합니다. – Thilo

+0

맞습니다. 권한을 확인하기 위해 SecurityManager를 설정해야합니다. Java가 런타임에 클래스를 컴파일 할 때까지 (JDK 7에 통합되어있는 것에 대해 읽었을 때, 어디서 확실하지 않다는 것을 알기 전까지), 이것은 Achilles heel이 될 것입니다. 그러나 볼 수없는 코드 (제 3 자 코드)에 정책을 적용하는 것은 큰 일입니다. – questzen

관련 문제