2014-10-19 7 views
0

에 대한 몇 가지 검사를 가능하게 JavaDoc).만 나는이 패키지 구조가 특정 내부 패키지

<?xml version="1.0"?> 
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" 
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> 

<suppressions> 
    <suppress files="my[\\/]package[\\/]api[\\/]" checks="AdditionalChecks"/> 
</suppressions> 

하지만이 특별한 패키지에 대한 추가 검사를 비활성화합니다 (다른 패키지에들 수있게됩니다) : 나는 억제 파일을 발견했다. 그 반대의 방법이 있습니까?

답변

1

이 경우 모든 패키지의 경고를 표시하지 말아야합니다. 그러나api. suppress 요소의 files 속성은 Java regexes됩니다, 그래서 당신은 그렇게 (explanation of regex)처럼 구성 할 수 있습니다

<suppressions> 
    <suppress files="my[\\/]package[\\/](?!api)[^\\/]+[\\/]" 
     checks="AdditionalChecks"/> 
</suppressions> 
+0

감사합니다. 불행히도 나는'my.package'에 클래스를 가지고 있는데,이 정규식은 그들을 필터링하지 않습니다. 정규식을 어떻게 수정해야합니까? 나는이 부정적인 look-ahead에 익숙하지 않다. – WonderCsabo

+0

그게 바로 정규 표현식을 얻는 문제입니다. regex101에서 예제를 만들고 일치해야하는 줄을 알려 주시면 다른 정규식을 줄 수 있습니다. –

+0

'my.package'와 일치하지 않아야한다고 생각합니다. 그러나 정규 표현식은 실제로 그렇게합니다. Checkstyle은 여전히 ​​해당 패키지의 클래스를 확인하려고합니다. 이 문제를 설명하기 위해 [샘플 프로젝트] (https://github.com/WonderCsabo/checkstyle-suppress-package-example)를 만들었습니다. 또한 점검해야 할 항목과 그렇지 않은 항목을 이해하는 데 도움이 될 수 있습니다. – WonderCsabo