2012-07-06 1 views
0

명령 줄에서 checkstyle을 사용하고 있습니다. Maven 또는 ANT에는 없습니다.Checkstyle suppressions : 내가 뭘 잘못하고 있니?

suppressions.xml 파일을 정의했으며이를 내 -c CheckstyleConfig.xml에서 참조했습니다.

Checkstyle이 실행되지만 구문 분석 오류는 발생하지 않지만 아무 것도 표시하지 않습니다.

Checkstyle이 파일 .class을 무시하도록하고 있습니다. 내 suppression.xml 파일의 내용은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suppressions PUBLIC 
"-//Puppy Crawl//DTD Suppressions 1.1//EN" 
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> 
<suppressions> 
<suppress checks="." files="(.*\.class)"/> 
</suppressions> 

내가 잘못하고있는 것에 대한 아이디어가 있습니까? Checkstyle은 여전히 ​​파일을 처리 중입니다 .class.

감사합니다.

답변

0

Checkstyle이 클래스 파일에서 작동하지 않으며 파일을 구문 분석 할 수 없습니다. Checkstyle은 ".java"로 끝나는 파일 인 Java 소스 코드에서 작동합니다.

그래서 문제는 오류를 억제하는 정규식입니다. 억제는 다음과 같아야합니다.

<suppress checks="." files="(.*\.java)"/> 
0

Checkstyle은 피드에 관계없이 작동합니다. 기본 eclipse-cs 설치는 Java 파일 및 등록 정보 파일 만 제공하지만 명령 행에서 실행 중이기 때문에 .class 파일을 제외하거나 경고를 표시하지 않도록해야합니다.

.class 파일을 검사에서 제외하는 것이 좋습니다 (Checkstyle에서 파일을 볼 수 없도록하기 위해). 시간을 절약 할 수 있기 때문에 더 적합합니다.

하지만 경고를 표시하지 않으려는 경우에도 그렇게 할 수 있습니다. suppressions.xml에있는 files 정규 표현식은 욕심이 많으므로 .*은 이미 전체 파일 이름을 포함하며 예제의 패턴은 결코 일치하지 않습니다. . '는 .` 나`*`은`checks` 인수에 중요하지 않습니다 사용 BTW,

<suppressions> 
    <suppress checks=".*" files="\.class$" /> 
</suppressions> 
+0

: (모든 .class 파일을 억제)이 구문을보십시오. 두 변종은 다른 방식으로 모든 수표와 일치합니다. –

+0

이 문제에 답변 해 주셔서 감사합니다. 이 문제는 이전 직장의 프로젝트와 관련이 있습니다. 그 직업은 록히드 마틴 (Lockheed Martin)입니다. 내가 기억한다면, 내가 문제를 해결하는 방법은 PERL 스크립트를 포장하여 자바 파일 만 CS로 보냈다. –

+0

사실, Checkstyle은 당신이 무엇을 든 것을 확인합니다. 그래서 클래스 파일을 주면 스크립트로 올바른 솔루션을 선택했습니다. CS에 잘못된 파일을 제공하면 CS가 경고를 표시하지 않는 것보다 낫습니다. 나는 나의 대답을 조정할 것이다 - 지금까지 나는 질문이 죽었다고 생각했다. :-) –

관련 문제