2013-04-15 14 views
12

में पीएमडी से एकल नियम चेक निकालें, मैं पीओएम में एक पीएमडी नियम को बाहर करना चाहता हूं, लेकिन यह काम नहीं कर रहा है। मैं (pom.xml रूप में एक ही निर्देशिका में) एक PMD-exclude.xml बनाने की कोशिश की है:मेवेन प्लगइन

<?xml version="1.0"?> 
<ruleset name="remove_rules"> 
    <description>Remove rules</description> 
    <rule ref="rulesets/unnecessary.xml"> 
     <exclude name="UselessParentheses"/> 
    </rule> 
</ruleset> 

http://www.ing.iac.es/~docs/external/java/pmd/howtomakearuleset.html से और pom.xml में यह संदर्भित:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-pmd-plugin</artifactId> 
    <version>3.0.1</version> 
    <configuration> 
     <sourceEncoding>utf-8</sourceEncoding> 
      <rulesets> 
        <ruleset>${pom.basedir}/pmd-exclude.xml</ruleset> 
      </rulesets> 
    </configuration> 
</plugin> 

लेकिन यह रहता है इन नियमों की रिपोर्टिंग।

इसके अलावा: मैं यह निर्दिष्ट नहीं करना चाहता कि इसे कौन से नियमों को जांचना चाहिए, क्योंकि नए संस्करण (और करेंगे) में नए शामिल हो सकते हैं और मैं यह नहीं देखना चाहता कि प्रत्येक नए संस्करण में कौन से नए नियम चलेंगे।

+0

किसी भी समाधान खोजने के लिए की गई थी? मैं FFFailureFile को बाहर करने की कोशिश कर रहा हूं, लेकिन यह भी काम नहीं करता है। – Jaga

+1

मैं इसके लिए एक असली समाधान खोजने में सक्षम नहीं था। बाद में, हम सोनार चले गए और आप कॉन्फ़िगर कर सकते हैं कि कौन से नियम लागू होते हैं, जो मुझे आवश्यक है और साथ ही सभी ग्राफिक्स और अन्य अच्छी चीजें भी हैं। लेकिन यह वास्तव में इस सवाल का जवाब नहीं है। –

+0

आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद – Jaga

उत्तर

5

मुझे लगता है कि आपको उन नियमों को जोड़ने की आवश्यकता होगी जिन्हें आप जांचना चाहते हैं और केवल उस विशिष्ट नियम को छोड़ दें जिसकी आपको आवश्यकता नहीं है।

PMD-exclude.xml इस तरह दिखना चाहिए:

<?xml version="1.0" encoding="UTF-8"?> 
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    name="Android Application Rules" 
    xmlns="http://pmd.sf.net/ruleset/1.0.0" 
    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd" 
    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" > 

    <description>Remove rules</description> 

    <rule ref="rulesets/clone.xml" /> 
    <rule ref="rulesets/finalizers.xml" /> 
    <rule ref="rulesets/imports.xml" /> 
    <rule ref="rulesets/logging-java.xml" /> 
    <rule ref="rulesets/unnecessary.xml" > 
     <exclude name="UselessParentheses" /> 
    </rule> 

</ruleset> 
+0

पीएमडी टीम द्वारा समय के साथ नए नियम जोड़े गए हैं? आपका उत्तर मुझे जो चाहिए उसकी बारीकी से प्रतीत होता है। –

0

@ marcelopazzo के समाधान मेरे लिए काम किया। मैं बस यह जोड़ना चाहता हूं कि यदि आप एक बहु-मॉड्यूल मेवेन प्रोजेक्ट के साथ काम कर रहे हैं तो आपको pmd-extrae.xml पर अपना संदर्भ अपडेट करना होगा, जब तक कि आप प्रत्येक मॉड्यूल में इस फ़ाइल की प्रतिलिपि बनाने की योजना न लें।

उदाहरण

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-pmd-plugin</artifactId> 
     <version>3.6</version> 
     <configuration> 
      <rulesets> 
       <ruleset>${project.parent.basedir}/pmd-exclude.xml</ruleset> 
      </rulesets> 
     </configuration> 
    </plugin> 
संबंधित मुद्दे