2009-10-10 10 views
5

मैं एक एपीआई बनाए रख रहा हूं जिसने कुछ सार्वजनिक स्थैतिक क्षेत्रों को हटा दिया है।क्या मैं बहिष्कृत विधियों और कक्षाओं के लिए चेकस्टाइल शिकायतों को अक्षम कर सकता हूं?

CheckStyle इन के बारे में जोर से शिकायत लेकिन मैं नहीं बल्कि उन्हें पूरी तरह उपेक्षा के बाद से मैं के रूप में पदावनत क्षेत्रों में चिह्नित करके समस्या से निपटा गया है होगा।

विशेष रूप से, पुस्तकालय गणन के लिए स्थिरांक है (सार्वजनिक स्थिर अंतिम), लेकिन वे अंतिम के रूप में चिह्नित नहीं कर रहे हैं। चेक स्टाइल उनके बारे में शिकायत करेगा, लेकिन मैं अनुबंध को तोड़ने के बिना उन्हें अंतिम रूप में नहीं बदल सकता।

मेरे योजना के रूप में पदावनत उन्हें चिह्नित करने के लिए और फिर उन्हें बाद में हटा है। लेकिन उन्हें बहिष्कृत के रूप में चिह्नित करने से उन्हें चेक स्टाइल रिपोर्ट से नहीं हटाया जाता है।

+0

आप सटीक उत्पादन दे सकते हैं? –

उत्तर

8

मैं तुम्हारे लिए दो विकल्प हैं:

  1. प्रत्येक पंक्ति के लिए चेतावनी को दबाने के रूप में आप दमन विन्यास हर बार जब आप लाइनों जा रहे हैं बनाए रखने के लिए है मैन्युअल

    यह दृष्टिकोण कम लचीला है । लेकिन आप व्यक्तिगत रूप से प्रत्येक घटना को संभाल सकते हैं।

    <suppress checks="YOURCHECK" files=".*YOURCLASS\.java" lines="YOURLINES"/> 
    

    मैं जो चेक आपके समस्या का कारण है पता नहीं है, तो आप उचित नाम के साथ YOURCHECK को बदलने के लिए। YOURCLASS नाम जावा फ़ाइल है, जो पदावनत कोड होता है, लेकिन आप .* हर फ़ाइल पर लागू करने का सम्मिलित कर सकते हैं। आपकी मान मानों की एक अल्पविराम से अलग सूची है, जहां प्रत्येक मान एक पूर्णांक या पूर्णांक-पूर्णांक द्वारा निर्दिष्ट पूर्णांक की एक श्रृंखला है।

  2. उपयोग एक टिप्पणी checkstyle सलाह देने के लिए चेतावनी

    यह समाधान आप एक बार में सभी पदावनत सदस्यों के लिए चेक निष्क्रिय करने के लिए अनुमति देता है की अनदेखी करने के। लेकिन आपको सख्त सम्मेलन का पालन करना होगा। आप क्योंकि इस फिल्टर लाइनों की एक सख्त सीमा है उन सदस्यों (, क्या आप संभवतः पहले से ही करते हैं) बहुत अंतिम स्थान पर करने के लिए एक @deprecated टिप्पणी जोड़ने के लिए, है।

    /** 
    * @deprecated I don't like this anymore. 
    */ 
    public static String EXAMPLE = "example"; 
    

    यह समाधान आपके विन्यास फ़ाइल के भीतर एक परिवर्तन की जरूरत है। सबसे पहले आपको को TreeWalker पर एक बच्चे के रूप में जोड़ना होगा।

    <module name="TreeWalker"> 
        ... 
        <module name="FileContentsHolder"/> 
        ... 
    </module> 
    

    अब आप SuppressWithNearbyCommentFilter जो Checker मॉड्यूल का हिस्सा है कॉन्फ़िगर कर सकते हैं।

    <module name="Checker"> 
        ... 
        <module name="SuppressWithNearbyCommentFilter"> 
         <property name="commentFormat" value=".*deprecated.*"/> 
         <property name="checkFormat" value=".*"/> 
         <property name="influenceFormat" value="2"/> 
        </module> 
        ... 
    </module> 
    

    आप केवल विशिष्ट चेकों की अनदेखी करने का निर्णय लेते हैं, checkFormat विशेषता समायोजित करें। या यदि आप एक और टिप्पणी का उपयोग करना चाहते हैं, तो commentFormat विशेषता बदलें। लेकिन यह बहुत महत्वपूर्ण है कि आपने सही मूल्य पर influenceFormat सेट किया है। यह उन चेकों को अनदेखा करने के कारण टिप्पणी के बाद कितनी पंक्तियों के भीतर चेकस्टाइल बताता है।

पी.एस .: ध्यान दें कि ग्रहण CheckStyle प्लगइन FileContentsHolder मॉड्यूल निकाल देता है, जब आप अपने यूजर इंटरफेस के साथ विन्यास बदल सकता है इसलिए आप इसका इस्तेमाल नहीं करना चाहिए।

+2

यह बहुत अच्छा है। उत्तम! –