2012-06-10 21 views
85

के लिए सोनार को बंद करना क्या कोड के विशिष्ट ब्लॉक के लिए सोनार (www.sonarsource.org) माप को बंद करना संभव है, जिसे कोई मापना नहीं चाहता है?कुछ कोड

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

उत्तर

48

यह FAQ है। चेतावनी को ट्रिगर करने वाली लाइन पर आप //NOSONAR डाल सकते हैं।

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value = "NAME_OF_THE_FINDBUGS_RULE_TO_IGNORE", 
    justification = "Why you choose to ignore it") 
+1

सहमत हुए।हालांकि, मुझे यकीन नहीं है कि सोनार सही ढंग से '@ SuppressFBWarnings'' ('java.lang.SuppressWarnings'' के साथ संघर्ष से बचने के लिए जोड़ा गया है और यह भी अनदेखा करता है। –

+0

AFAIK, सोनार FindBugs का उपयोग करता है। इसलिए यदि FindBugs इन एनोटेशन को संभालता है, तो मुझे नहीं लगता कि सोनार के माध्यम से FindBugs चलाते समय वे क्यों काम नहीं करेंगे। वैसे भी परीक्षण करना मुश्किल नहीं होना चाहिए। –

+4

अक्सर पूछे जाने वाले प्रश्न लिंक पुराने हैं। यहां नया [एफएक्यू] है (http://docs.sonarqube.org/display/HOME/Frequently+Asked+Questions#FrequentlyAskedQuestions-Howtoremovefalsepositiveissues?) – wiredniko

116

आप एक वर्ग या SuppressWarnings

@java.lang.SuppressWarnings("squid:S00112") 

व्यंग्य के साथ एक विधि टिप्पणी कर सकते हैं: मैं @SuppressFBWarnings एनोटेशन जोड़ने में होते हैं जो हालांकि FindBugs प्रणाली का उपयोग कर पसंद करते हैं, इस मामले में S00112 है एक सोनार मुद्दा आईडी। आप सोनार यूआई में यह आईडी पा सकते हैं। मुद्दे ड्रिलडाउन पर जाएं। एक ऐसी समस्या खोजें जिसे आप चेतावनियों को दबाना चाहते हैं। आपके कोड में लाल समस्या बॉक्स में किसी दिए गए मुद्दे की परिभाषा के साथ एक नियम लिंक है। एक बार क्लिक करने के बाद आप पेज के शीर्ष पर आईडी देखेंगे।

+6

मैं पुष्टि कर सकता हूं कि यह एक विशिष्ट FindBugs नियम-आईडी के साथ भी काम करता है, उदा। '@SuppressWarnings (" FindBugs: UI_INHERITANCE_UNSAFE_GETRESOURCE ")'। – bcody

+5

समस्या यह है कि ग्रहण एक चेतावनी प्रदर्शित करता है 'असमर्थित @SuppressWarnings ("स्क्विड: S00112") '। आप ग्रहण को इस पर नजरअंदाज करने के लिए कॉन्फ़िगर कर सकते हैं लेकिन फिर एक टाइपो जैसे कि @ @ सुपरप्रेस चेतावनी ("अनचेक") 'का पता नहीं लगाया जाएगा। –

40

मुझे सलाह है कि आप @SuppressWarnings("squid:S2078") का उपयोग कर विशिष्ट चेतावनियों को दबाने का प्रयास करें।

कई चेतावनियों को दबाने के लिए आप वहाँ भी है //NOSONAR टिप्पणी कि SonarQube बताता है एक विशिष्ट लाइन के लिए सभी त्रुटियों को अनदेखा करने के लिए इस @SuppressWarnings({"squid:S2078", "squid:S2076"})

की तरह कर सकते हैं।

अंत में यदि आपके पास उपयोगकर्ता इंटरफ़ेस के लिए उचित अधिकार हैं तो आप इंटरफ़ेस से सीधे झूठी सकारात्मक के रूप में ध्वज जारी कर सकते हैं।

कारण मैं विशिष्ट चेतावनियों के दमन की अनुशंसा करता हूं कि यह //NOSONAR का उपयोग करने के बजाय एक विशिष्ट समस्या को अवरुद्ध करने का एक बेहतर अभ्यास है और दुर्घटना से आपके कोड में एक सोनार समस्या को खतरा है।

आप में FAQ

नोट इस बारे में और अधिक पढ़ सकते हैं: Gábor Bakos बड़े पूछे जाने वाले प्रश्न है कि अब 404 की ओर इशारा करते है। यह मेरे लिए पहले गूगल परिणाम है तो मैं किसी और को एक ही सवाल हो सकता है मदद करना चाहते हैं

संपादित करें: 6/30/16 SonarQube अब SonarLint

मामले में आप कैसे को खोजने के लिए सोच रहे हैं कहा जाता है स्क्विड संख्या। बस सोनार संदेश पर क्लिक करें (उदा। Remove this method to simply inherit it.) और सोनार मुद्दा विस्तारित होगा।

तल पर, छोड़ दिया यह

तो फिर आप इसे @SuppressWarnings("squid:S1185")

+2

इंग्नो एकाधिक सोनार क्यूब चेतावनियों के संकेत के लिए धन्यवाद – AlexWien

+1

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

3

द्वारा दबा सकती हैं विद्रूप संख्या (उदा। squid:S1185 अनुरक्षणीयता> understandability) मैं सोनार 5.6 में व्यंग्य नंबर मिल करने में सक्षम नहीं होगा इस एनोटेशन के साथ भी काम करता है:

@SuppressWarnings({"pmd:AvoidCatchingGenericException", "checkstyle:com.puppycrawl.tools.checkstyle.checks.coding.IllegalCatchCheck"}) 
संबंधित मुद्दे