728x90

1.1.3 커맨드라인 사용법

 

 

(1) PMD 실행 파일 다운로드

 

처음 PMD는 자립형(Standard-alone)으로 시작되었고, 현재 SourceForge.net 하에 오픈-소스 프로젝트로 운영되고 있다. 현재 PMD는 자바 통합개발환경을 지원하는데, JDeveloper, Eclipse, JEdit, JBuilder, Omnicore's CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs 에 대한 플러긴이 개발된 상태이다. 여기서는 Eclipse에 대한 PMD 플러긴을 다룬다.

 

 

 

현재 PMD 최신 버전은 5.4이며, 설치하려면 JDK 1.7 버전 이상이 필요로 한다. 다음 경로에서 다운로드 가능하며, PMD 홈페이지에서 PMD 관련 제품이나 책, 라이센스 정보, 사용 법 등에 대한 문서를 제공하고 있다.

 

 

PMD 다운로드: http://sourceforge.net/projects/pmd/files/

 

 

 

그림 1 PMD 실행 파일 다운로드

다운로드 압축 해제 하면 다음과 같을 것이다.

 

그림 2 PMD ZIP 파일 압축 해제

 

 

(2) Command 라인 사용법

 

Window 플랫폼 환경(Window 7 32bit)에서 커맨드 라인 사용법을 먼저 알아보자. 커맨드라인 pmd 도구는 ~bin 디렉터리에 있다. 

 

사용 문법은 다음과 같다.

 

 

사용 문법

pmd –d [파일이름 | 소스코드를 포함하고 있는 jar 혹은 ZIP 파일] –f [보고서이름] –R [규칙파일]

사용 예

C:\tmp\pmd-bin-5.4.0\pmd\bin>pmd -d c:\data\pmd\pmd\test-data\Unused1.java -f xml -R rulesets/java/unusedcode.xml

표 4 커맨드라인 사용 문법

 

PMD 실행 파일에는 Jar파일에 규칙 파일이 포함되어 있다.

사용되는 옵션들은 다음과 같으며 –help 옵션 사용 시 자세한 도움말을 보여준다.

 

 

그림 3 PMD help 옵션 예

 

옵션

설명

필수 유무

지원 언어

-rulesets / -R

사용할 룰셋 이름

O

 

-dir / -d

소스 루트 디렉터리

O

 

-format / -f

보고서 포맷, 디폴트 포맷은 'text'

X

 

-auxclasspath

소스코드에 사용되는 클래스 혹은 라이브러리 경로

X

 

-uri / -u

소스에 대한 데이터베이스 URI

X

plsql

-debug / -verbose / -D / -V

디버그 모드/ 많은 로그를 보여줌

X

 

-help / -h / -H

도움말

X

 

-encoding / -e

PMD가 진단하는 소스코드에 대한 인코딩방법 설정, 디폴트는 UTF-8

X

 

-benchmark / -b

벤치마크 모드

X

 

-stress / -S

스트레스 테스트 실행

X

 

-shortnames

보고서에 짧은 파일 이름을 출력함

X

 

-suppressmarker

Surpressed 규칙 위반을 보고서로 출력함

X

 

-minimumpriority / -min

규칙 우선 순위 처리

X

 

-property / -P

보고서 포맷에 대한 속성 정의

X

 

-reportfile / -r

보고서 결과물을 파일로 출력, 디폴트는 System.out

X

 

-version / -v

PMD에서 사용되는 언어 버전

X

 

-language / -l

PMD에서 사용되는 언어

X

 

-failOnViolation {true|false}

PMD는 규칙 위반 발견 시 4 상태로 존재한다. 이 옵션을 비활성화하면(false값) PMD가 종료되고(0) 보고서를 출력한다. 디폴트 true

X

 

표 5 PMD 명령 옵션

 

[실습 Webgoat 5.4 소스코드]

 

 

Step 1 Webgoat-5.4.war 파일 다운로드

 

다음 경로에서 Webgoat-5.4.war 파일을 다운로드 후 pmd 툴이 있는 디렉터리에서 압축 해제한다.

 

Webgoat 5.4 다운로드: https://code.google.com/p/webgoat/downloads/list

 

 

그림 4 Webgoat war 파일 다운로드

 

Step 2 PMD 실행 명령 입력

 

Webgoet-5.4 이름으로 디렉터리가 생성된다. 

Webgoat 소스 및 클래스 파일은 다음 경로에 있다.

 

 

~C:\pmd-bin-5.4.0\bin\WebGoat-5.4\WEB-INF\classes

위의 나열된 규칙 집합에서 java-basic을 적용하고 html 포맷의 파일로 점검 결과를 출력 해보자.

 

 

pmd.bat C:\pmd-bin-5.4.0\bin\WebGoat-5.4\WEB-INF\classes\org –f html –R java-basic –r PMD-java-basic-webgoat-5.4.html

 

 

그림 5 PMD 실행 명령

 

Step 3 결과파일 확인

 

생성된 결과 파일을 확인해 보자.

 

그림 6 결과파일 확인5

규칙 위반이 발견된 파일명과 라인, 문제를 보여준다. 

 

 

references

PMD 고급 사용법-http://www.eclipsezone.com/articles/pmd/

PMD 홈페이지-https://pmd.github.io/

PMD 문서-http://pmd.sourceforge.net/pmd-4.3.0/integrations.html#eclipse

Webgoat 소스코드 -https://code.google.com/p/webgoat/source/checkout

https://blog.idrsolutions.com/2015/04/creating-your-own-custom-pmd-rulesets/


반응형

+ Recent posts