2012-02-05 15 views
6

मेरे पास पीएमडी मेवेन 2 के माध्यम से चल रहा है। अभी मेरे पास जेनरेट होने के लिए सभी नियम हैं (नीचे कोड देखें)। मैं उन चीजों को ठीक कर रहा हूं जो ठीक करने के लिए मुझे समझ में आता है। हालांकि, ऐसे मामले हैं जैसे "अनुकूलन" नियमसेट में जहां मैं नियम सेट रखना चाहता हूं, लेकिन नियम सेट के नियमों में से केवल एक को अक्षम करें। मेरे मामले में, मैं "AvoidInstantiatingObjectsInLoopss" नियम को अक्षम करना चाहता हूं।मेवेन के साथ पीएमडी - एक नियम के भीतर एक नियम को कैसे अक्षम करें?

यहाँ मेरी pom.xml

<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> 
+0

मैं सोनार के हिस्से के रूप में पीएमडी चलाता हूं। सोनार किस नियम को सक्षम करने के प्रबंधन के लिए एक जीयूआई प्रदान करता है। –

+0

सोनार बहुत दिलचस्प लग रहा है। मैं उस संबंध में और अधिक जांच करूंगा। अभी के लिए, मुझे अभी भी समझने में दिलचस्पी है कि उदाहरण के लिए मेवेन कॉन्फ़िगरेशन के माध्यम से मेरी ज़रूरतों को पूरा करने का कोई तरीका है या नहीं? – Bellini

उत्तर

2

नियमों की परिभाषा के रिपोर्टिंग अनुभाग है और इसकी सक्रियण नियम-सेट फाइलों पर है। चूंकि आपके पास "नियम" फ़ोल्डर पर फ़ाइलों की एक प्रति है, तो नियम के संदर्भ में नियमसेट फ़ाइल पर नोड को हटाएं या टिप्पणी करें। इस मामले में, "AvoidInstantiatingObjectsInLoops" (net.sourceforge.pmd.rules.optimization.AvoidInstantiatingObjectsInLoops) एक अनुकूलन नियम है, इसलिए यह "/rulesets/optimizations.xml" में होने की संभावना है।

बस फ़ाइल संपादित करें, नियम को शामिल करने के लिए देखें, और संबंधित नियम नोड टिप्पणी या हटाएं।

मुझे आपकी फ़ाइलों की सामग्री नहीं पता है, इसलिए आप नियम को एक से अधिक बार शामिल कर सकते थे।

+0

"नियम" प्लगइन का हिस्सा है, न कि मेरे अपने मैवेन प्रोजेक्ट में एक स्थानीय फ़ोल्डर। – Basil