PMD Ruleset 관련 질문입니다.
- 작성자 :
- 작성일 :
- 2019-06-11 17:16:26
- 조회수 :
- 3,634
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
전자정부프레임워크 3.5 개발환경이후버전에 적용될 수 있는 PMD Ruleset을 다운로드 해서 3.8 버전에 import를 하려고 하니 룰셋내의 룰들을 전혀 파싱하지 못하는것 같습니다. 3.8 버전에 내장된 PMD 플러그인 버전이 해당 룰셋을 파싱하지 못하는것 같아 빌트인 룰셋을 엑스포트해보니 전자정부3.5 이상버전용 다운로드 룰셋과 속성이 좀 다르더군요. 아래와 같습니다.
전자정부 3.5 이상용 다운로드 룰셋
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="EgovInspectionRules_kor-3.8"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>PMD Plugin preferences rule set</description>
<rule name="AvoidThrowingNullPointerException" language="java" message="NullPointerException을 throw하는 것은 비추천" class="net.sourceforge.pmd.lang.rule.XPathRule">
PMD 4.2.3 플러그인 엑스포트 룰셋
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="EgovInspectionRules_eng-3.8"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>PMD Plugin preferences rule set</description>
<rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod"/>
<rule ref="category/ecmascript/codestyle.xml/AssignmentInOperand"/>
<rule ref="category/java/errorprone.xml/AssignmentInOperand"/>
<rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic"/>
위 두 룰셋을 비교해보면 다른 속성들은 다 제거되고 ref 속성값만으로 룰을 구성한것 같습니다.
위 변경사항을 조사해서 PMD룰셋을 임포트 테스트 후 임포트가 정상적으로 이뤄지는 파일을 다운가능하게 부탁드립니다.
감사합니다.
전자정부 3.5 이상용 다운로드 룰셋
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="EgovInspectionRules_kor-3.8"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>PMD Plugin preferences rule set</description>
<rule name="AvoidThrowingNullPointerException" language="java" message="NullPointerException을 throw하는 것은 비추천" class="net.sourceforge.pmd.lang.rule.XPathRule">
PMD 4.2.3 플러그인 엑스포트 룰셋
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="EgovInspectionRules_eng-3.8"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>PMD Plugin preferences rule set</description>
<rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod"/>
<rule ref="category/ecmascript/codestyle.xml/AssignmentInOperand"/>
<rule ref="category/java/errorprone.xml/AssignmentInOperand"/>
<rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic"/>
위 두 룰셋을 비교해보면 다른 속성들은 다 제거되고 ref 속성값만으로 룰을 구성한것 같습니다.
위 변경사항을 조사해서 PMD룰셋을 임포트 테스트 후 임포트가 정상적으로 이뤄지는 파일을 다운가능하게 부탁드립니다.
감사합니다.
A
안녕하세요.
표준프레임워크센터 입니다.
개발환경 V3.8에 적용된
PMD 플러그인의 버전은 4.0.17입니다.
기존 버전과 버전넘버의 차이는 미미하지만
ruleset import시 목록에 보여지지 않는등의 문제가 있습니다.
내부적으로 확인중에 있으나
플러그인의 버그등의 가능성등에 대한 원인에 대해
내부적으로 확인중에 있습니다.
플러그인 자체의 문제인경우
빠른 시간내에 처리가 어려울듯 합니다.
전자정부에서 제공하는 룰셋이 아닌
PMD에 포함된 Default 룰셋을 사용하시거나
다른 인스펙션 도구인 Findbug또는 sonar cube등을 이용해 주셔야 할듯 합니다.
감사합니다.
표준프레임워크센터 입니다.
개발환경 V3.8에 적용된
PMD 플러그인의 버전은 4.0.17입니다.
기존 버전과 버전넘버의 차이는 미미하지만
ruleset import시 목록에 보여지지 않는등의 문제가 있습니다.
내부적으로 확인중에 있으나
플러그인의 버그등의 가능성등에 대한 원인에 대해
내부적으로 확인중에 있습니다.
플러그인 자체의 문제인경우
빠른 시간내에 처리가 어려울듯 합니다.
전자정부에서 제공하는 룰셋이 아닌
PMD에 포함된 Default 룰셋을 사용하시거나
다른 인스펙션 도구인 Findbug또는 sonar cube등을 이용해 주셔야 할듯 합니다.
감사합니다.