Tôi có PMD chạy qua Maven 2. Ngay bây giờ tôi có tất cả các rulesets để xem những gì được tạo ra (xem mã dưới đây). Tôi đang đi qua và sửa chữa những thứ có ý nghĩa với tôi để sửa chữa. Tuy nhiên, có những trường hợp như trong ruleset "tối ưu hóa" mà tôi muốn giữ nguyên quy tắc, nhưng vô hiệu hoá chỉ một trong các quy tắc trong bộ quy tắc. Trong trường hợp của tôi, tôi muốn vô hiệu hóa quy tắc "AvoidInstantiatingObjectsInLoopss".PMD với Maven - Làm thế nào để vô hiệu hóa một quy tắc trong một ruleset?
Dưới đây là phần báo cáo của pom.xml của tôi
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.6</version>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<minimumTokens>${pmd.minimumTokens}</minimumTokens>
<failOnViolation>${pmd.failOnViolation}</failOnViolation>
<targetJdk>${projectTargetJdk}</targetJdk>
<rulesets>
<!-- See the FAQ here: http://maven.apache.org/maven-1.x/plugins/pmd/faq.html -->
<!-- See the rule sets here: http://pmd.sourceforge.net/ (menu on the left has a Rule Sets section -->
<!-- Unused rule sets -->
<!-- <ruleset>/rulesets/naming.xml</ruleset> -->
<!-- Unable to find rule sets -->
<!-- <ruleset>/rulesets/emptycode.xml</ruleset> -->
<!-- <ruleset>rulesets/comments.xml</ruleset> -->
<!-- <ruleset>/rulesets/unnecessary.xml</ruleset> -->
<!-- <ruleset>/rulesets/logging.xml</ruleset> -->
<!-- used rule sets -->
<!-- http://pmd.sourceforge.net/rules/java/basic.html -->
<ruleset>/rulesets/basic.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/braces.html -->
<ruleset>/rulesets/braces.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/clone.html -->
<ruleset>/rulesets/clone.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/codesize.html -->
<ruleset>/rulesets/codesize.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/controversial.html -->
<ruleset>/rulesets/controversial.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/coupling.html -->
<ruleset>/rulesets/coupling.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/design.html -->
<ruleset>/rulesets/design.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/finalizers.html -->
<ruleset>/rulesets/finalizers.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/imports.html -->
<ruleset>/rulesets/imports.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/j2ee.html -->
<ruleset>/rulesets/j2ee.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/junit.html -->
<ruleset>/rulesets/junit.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/javabeans.html -->
<ruleset>/rulesets/javabeans.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/migrating.html -->
<ruleset>/rulesets/migrating.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/optimizations.html -->
<ruleset>/rulesets/optimizations.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/strictexception.html -->
<ruleset>/rulesets/strictexception.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/strings.html -->
<ruleset>/rulesets/strings.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/sunsecure.html -->
<ruleset>/rulesets/sunsecure.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/typeresolution.html -->
<ruleset>/rulesets/typeresolution.xml</ruleset>
<!-- http://pmd.sourceforge.net/rules/java/unusedcode.html -->
<ruleset>/rulesets/unusedcode.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>
Tôi chạy PMD như một phần của Sonar. Sonar cung cấp một GUI để quản lý các quy tắc nào được kích hoạt. –
Sonar trông rất thú vị. Tôi sẽ điều tra thêm về vấn đề đó. Bây giờ, tôi vẫn quan tâm đến sự hiểu biết nếu có một cách để giải quyết nhu cầu của tôi thông qua cấu hình maven ví dụ? – Bellini