CheckStyle의 파일에 대한 모든 검사를 억제하는 방법은 무엇입니까?
-
06-07-2019 - |
문제
저는 제 3 자 수업을 재정의하고 있으며 모든 수표를 억제하고 싶습니다 (패치가 수락 될 때까지만 유지하기 때문에).
파일의 모든 검사를 억제하는 방법이 있습니까?
"*"를 사용해 보았지만 실패합니다.
해결책
명령 줄을 사용하고 있는지 또는 IDE에 있는지 모르지만 기본적으로 Suppresions 파일이 필요합니다. CheckStyle 구성 파일을 수동으로 편집하는 경우 새 모듈을 추가하십시오.
<module name="SuppressionFilter">
<property name="file" value="mysuppressions.xml" />
</module>
당신의 mysuppression.xml
다음과 같은 것일 수 있습니다.
<?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="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>
"값"files
"속성은 기본적으로 소스 파일에 대한 정규식이며,"checks
"속성은 어떤 수표를 건너 뛰는 지 ("에 대한 재규모입니다.[a-zA-Z0-9]*
"기본적으로 모든 것을 건너 뛰는 것을 의미합니다). 이것은 당신이 찾고있는 패턴입니다.
다른 팁
checks.xml에 suppressioncommentfilter 태그를 추가하여 파일의 확인을 억제 할 수있었습니다.
먼저, 나는 Treewalker 태그의 아이로서 filecontentholder 태그를 추가했습니다 (이 단계는 다음과 같습니다. ~ 아니다 com.puppycrawl.tools : Checkstyle의 버전 8.1 이후 필요 : :
<module name="TreeWalker">
...
<module name="FileContentsHolder"/>
...
</module>
그런 다음 Checks.xml에 suppressioncommentFilter를 추가했습니다 (com.puppycrawl.tools : Checkstyle - "Treewalker"노드 아래) : 이후) :
<module name="SuppressionCommentFilter"/>
파일의 첫 번째 줄에 다음 주석을 삽입 한 수표를 억제하려는 각 파일에서 다음과 같습니다.
// CHECKSTYLE:OFF
Aberrant80의 답변은 많은 도움이되었습니다. Regex Pattern Matching을 사용하여 그의 힌트의 도움으로 CheckStyle -Suppressions.xml 파일에 추가하여 전체 패키지의 CheckStyle을 억제 할 수있었습니다. 예를 들어. JAXB 패키지에서 모든 자동 생성 된 Java 파일에서 CheckStyle 점검을 건너 뛰기 위해
<suppressions>
<suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
</suppressions>
CheckStyle에 CheckClipse Eclipse 플러그인을 사용하는 경우 Project 속성의 CheckClipse> 파일 필터 탭으로 이동하여 파일 패턴 (디렉토리 포함)을 포함하거나 제외 할 수 있습니다. 예를 들어, 내 프로젝트에는 포함되어 있습니다 SRC 그리고 테스트 최상위 수준의 디렉토리. 나는 checkstyle을 파일에만 적용하고 싶습니다 SRC 디렉토리 (생략 테스트), 그래서 나는 다음과 같은 모습의 포함 패턴을 추가했습니다.
src/.+java$
보시다시피, 패턴 사양에 Regex 스타일 구문을 사용합니다.
@aberrant80의 답변은 내 프로젝트에서 작동하지 않았지만 매우 고무적입니다. checkstyle이 foo.java에서 찾는 경고를 억제하기 위해 링크, Maven이 사용되는 경우 :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
...
<configuration>
...
<configLocation>checkstyle.xml</configLocation>
<suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
...
</configuration>
...
</plugin>
그리고에서 CheckStyle-Suppressions.xml
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files="Foo.java" checks="[a-zA-Z0-9]*" />
</suppressions>
지금까지 가장 높은 버전은 1.1입니다 (1.2는 존재하지 않습니다).
쓰기 보호 파일을 무시할 수있는 옵션이 있습니다. 또는 패키지의 파일.
검사 된 프로젝트 내에 파일 그룹이 없으면이 파일을 필터링하여 파일 필터
파일 필터는 Regex를 사용하여 제외 할 파일을 결정합니다. REGEX는 전체 파일 이름으로 작동합니다.이 때문에 전체 폴더를 제외 할 수도 있습니다. 이 경우 원하는 경우 전체 패키지를 제외 할 수 있습니다.
약간의 Google이 있으면 원하는 예제의 예제가있는 CheckStyle Configuration Propertie 파일을 찾을 수 있습니다. 나는 당신이 그렇게 한 후에 제안합니다 - 미래 상황에서 그것을 참조 할 수 있도록 약간의 템플릿으로 저장하십시오.