2012-12-14 31 views
7

मैं अपने जावा परियोजना में Maven 3 और Checkstyle 2.9.1 उपयोग कर रहा हूँ और मैं एक आम checkstyle विन्यास है कि हम कई अन्य परियोजनाओं में उपयोग कर रहे हैं और साथ ही है। अपने स्वयं के प्रोजेक्ट में उस कॉन्फ़िगरेशन फ़ाइल की प्रतिलिपि बनाने और संपादित करने से बचने के लिए मैं कुछ संकुल (जेनरेट कोड) में सभी चेक अक्षम करने के लिए दमन फ़ाइल का उपयोग करता हूं।कुछ फ़ाइलों पर विशिष्ट चेकस्टाइल नियमों को दबाने के लिए सही वाक्यविन्यास क्या है?

अब मैं सभी फ़ाइलों में विशिष्ट नियमों को दबाना चाहता हूं।

<?xml version="1.0"?> 
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> 
<suppressions> 
    <suppress files="my[\\/]generated[\\/]code[\\/]package" checks="."/> 
    <suppress files=".*\\.java$" checks="IndentationCheck"/> 
    <suppress files=".*\\.java$" checks="LineLengthCheck"/> 
    <suppress files=".*\\.java$" checks="ExplicitInitializationCheck"/> 
    <suppress files=".*\\.java$" checks="MemberNameCheck"/> 
</suppressions> 

यह मेरा पोम है:

यह मेरा छिपाता फ़ाइल है

... 
<build> 
    ... 
    <plugins> 
    ... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <version>2.9.1</version> 
      <configuration> 
       <configLocation>${checkstyle.ruleset}</configLocation> 
       <suppressionsLocation>${checkstyle.suppressions}</suppressionsLocation> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

मैं तो फोन कर रहा हूँ

mvn checkstyle:checkstyle 

रिपोर्ट उत्पन्न करने के लिए, लेकिन दबा दिया चेतावनियां अभी भी वहां हैं।

मैं यहाँ क्या गलत कर रहा हूं?

उत्तर

10

ठीक है, मैं अंत में अपने चेकस्टाइल कॉन्फ़िगरेशन के लिए एक कार्यप्रणाली दमन फ़ाइल बनाने में कामयाब रहा।

मेरे मूल समस्या regex के साथ था, तो files=".*\\.java$" के बजाय मैं अब files="." उपयोग कर रहा हूँ सभी फाइलों पर विशेष चेकों को दबाने के लिए। मैं कुछ फाइलों पर सभी चेक भी दबाता हूं।

<?xml version="1.0"?> suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> 
<suppressions> 
    <!-- suppress certain checks on all files in a package --> 
    <suppress files="my[\\/]super[\\/]package[\\/]name" checks="ModifierOrderCheck|NeedBracesCheck|MagicNumberCheck"/> 
    <!-- suppress all checks on all files in a package --> 
    <suppress files="another[\\/]super[\\/]package[\\/]of[\\/]mine" checks=".*"/> 
    <!-- suppress certain checks on all files --> 
    <suppress files="." checks="IndentationCheck"/> 
    <suppress files="." checks="LineLengthCheck"/> 
    <suppress files="." checks="ExplicitInitializationCheck"/> 
    <suppress files="." checks="MemberNameCheck"/> 
    <suppress files="." checks="FinalClassCheck"/> 
</suppressions> 

आप विन्यास के Maven भाग के साथ मदद की जरूरत है, @Mawia की answer देखें:

यहाँ मेरी छिपाता से कुछ उदाहरण दायर कर रहे हैं।

0

यह मेरे लिए काम किया।

इसके बजाय

<suppressionsLocation>${checkstyle.suppressions}</suppressionsLocation> 

करने का मैं इस में डाल $ {checkstyle.ruleset}

<module name="SuppressionFilter"> 
    <property name="file" value="${checkstyle.suppressions}" /> 
</module> 

(जो मुझे लगता है की जांच शैली के लिए अपने xml फ़ाइल है) और मेरे $ {checkstyle.suppressions }

<suppressions> 
    <suppress files="package-info.java" checks="[a-zA-Z0-9]*"/> 
    <suppress files="SomeClass.java" checks="[a-zA-Z0-9]*"/> 
</suppressions> 
+0

ठीक है, दमन फ़ाइल को पहचाना और उपयोग किया जाता है। लेकिन वास्तविक दमन काम नहीं कर रहा था। मुझे समाधान मिला, लेकिन आज मेरे साथ सोर्सकोड नहीं है। मैं सोमवार को अपना प्रश्न अपडेट करूंगा। – cringe

+0

$ {checkstyle.ruleset} और $ {checkstyle.suppressions} इन दोनों में क्या चल रहा है? – user1730789