본문 바로가기

work/Architect

Hudson Pmd Report 한글 깨지는 문제


이런걸 내가 직접 겪으리라고는 생각도 못했었지만 겪어버렸다.

hudson 에서 pmd 플러그인을 설치한 이후에 pmd rule 세팅과 빌드 파일 세팅을 마치고 

잘돌려도 레포트를 생성할 수 없다면서 에러가 난다.  


구글가서 열심히 검색했더니 역시 선배 고수들이 이미 경험한 것들....

가뿐히 찾아서 조치해줬다.


아래는 퍼온 포스트
--------------------------------------------------------

PMD 체크한 XML 형식의 report에 한글내용이 있을 때,

한글은 &u.... 와 같은 유니코드 형식으로 표현된다.

허드슨에서 XML을 분석할 때 SAXException 이 발생한다.

 

해결방법은?

 

http://sayjava.egloos.com/5302833

한글로 되어있는 룰 파일을 사용하여 PMD XML 리포트를 생성 후 hudson에서 분석을 하면 에러가 발생한다.

net.sourceforge.pmd.util.StringUtil 클래스의 버그 때문인데, 다음과 같이 소스에서 appendXmlEscaped 메소드를 수정하고 사용하면 에러가 발생하지 않는다.

오류가 있는 87 라인
buf.append("&u").append(Integer.toHexString(c)).append(';');
수정 후
buf.append("&#x").append(Integer.toHexString(c)).append(';');

 

---------------------------------------------------------

요까지만 보고 이해가 안가는 사람을 위해 pmd-x.x.x.jar를 다시 만들어야 한다는 의미임을 잊지 마셔야 할 것
오픈 소스니 새로 받아서 소스 수정하시고 다시 jar를 만드시면 됩니다.