सोनारक्यूब एक निर्देशिका को छोड़ दें


132

मैं एक निर्देशिका को सोनार द्वारा विश्लेषण किए जाने से बाहर करने की कोशिश कर रहा हूं। मेरी sonar-project.propertiesफ़ाइल में निम्नलिखित गुण हैं :

sonar.sources=src/java
sonar.exclusions=src/java/test/****/*.java

निर्देशिका संरचना मेरे पास है:

src/java/dig
src/java/test/dig

जब मैं सोनार-धावक चलाता हूं तो मुझे निम्नलिखित जानकारी मिलती है:

 INFO  - Excluded sources:
 INFO  -   src/java/test/**/*.java
 INFO  - Excluded tests:
 INFO  -   **/package-info.java

लेकिन जब मैं विश्लेषण के परिणाम की जांच करता हूं तो परीक्षण निर्देशिका के अंदर सभी पैकेज अभी भी हैं।

मुझे सिर्फ सोनार को यह बताने की ज़रूरत है कि परीक्षण निर्देशिका और उसके अंदर किसी भी पैकेज का विश्लेषण न करें।


3
मुझे इसका समाधान मिला: sonar.exclusions = test / ** / *। Java
user1982350

लेकिन अगर आप परीक्षण विश्लेषण से बचना चाहते हैं, तो आप उदाहरण के लिए mvan क्लीन पैकेज
Eddú Meléndez

जवाबों:


121

कुछ इस तरह की कोशिश करो:

sonar.exclusions=src/java/test/**

4
वाइल्डकार्ड के लिए चींटी फ़ाइललॉग पैटर्न का उपयोग करने का आश्वासन दें। यहाँ एक अच्छी व्याख्या है: stackoverflow.com/a/86915/748524
Stephan

यहाँ कमांड लाइन विकल्प परिभाषा docs.sonarqube.org/display/SONAR/…
N0dGrand87

4
जो भी इसे देखता है, सुनिश्चित करें कि आपके पास src/test/javaइसके बजाय है src/java/test/
फराज

कैसे सी #
प्रकृति

यह नोट करना महत्वपूर्ण है कि यह एक नियमित अभिव्यक्ति के रूप में नहीं माना जाता है और आपके पूरे प्रोजेक्ट पर लागू होता है, sonar.exclusions=node_modules/**नेस्टेड नोड_मॉडल फ़ोल्डर को बाहर नहीं करेगा जिन्हें आपको sonar.exclusions=node_modules/**, /some/path/to/nested/node_modules/**स्पष्ट रूप से बाहर करने की आवश्यकता होगी
क्रिश्चियन बार्ट्राम

68

नीचे दिए गए कॉन्‍फ़‍िगरेशन (अल्पविराम से अलग किए गए फ़ोल्डर पथ) का उपयोग करके कई निर्देशिकाओं को बाहर करने में सक्षम हूं:

sonar.exclusions=system/**, test/**, application/third_party/**, application/logs/**

और सोनार धावक चलाते समय मुझे लॉग में निम्नलिखित मिला:

Excluded sources: 
  system/**
  test/**
  application/third_party/**
  application/logs/**

18
मुझे बहिष्कृत संदेश भी मिलता है, लेकिन फ़ाइलों का विश्लेषण अभी भी किया जाता है।
सेबास

टीमसिटी मापदंडों में मैंने आपके टिप का उपयोग किया है, लेकिन डालने से पहले -Dsonar.exclu ...)। यहां काम करता है। :-)
मैकल बॉम्बनाटो

यहाँ स्कैनिंग से सभी *। Html फ़ाइलों को कैसे बाहर करें? यह कोशिश की, sonar.exclusions=**/bin/**,*.htmlलेकिन यह अभी भी स्कैनिंग में HTML फ़ाइलें लेता है। Html फाइलें कई स्थानों पर सभी उप फ़ोल्डर हैं और वास्तविक पथ मानचित्र के साथ यहां उप फ़ोल्डर स्तर में जोड़ना अधिक काम होगा। क्या कोई ऐसा तरीका है जिससे हम सभी * .specific_file_type को स्कैन करने से बाहर कर सकते हैं?
एलमुरुगन


13

यदि हम निम्नलिखित संपूर्ण फ़ोल्डर को छोड़ना चाहते हैं तो इसका उपयोग किया जा सकता है:

sonar.exclusions=folderName/**/*

और अगर हमारे पास केवल एक विशेष फ़ाइल है, तो पूरा पथ दें।

सभी फ़ोल्डर जिन्हें बाहर करने और यहां संलग्न करने की आवश्यकता है।


2
कि इस सवाल का जवाब और बीच क्या अंतर है sonar.exclusions=folderNameऔर sonar.exclusions=folderName/**? धन्यवाद
पायने

* - मैच शून्य या अधिक वर्ण ** - मैच शून्य या अधिक निर्देशिका? - एकल चरित्र से मेल
खाते हैं

12

एक अन्य कॉन्फ़िगरेशन विकल्प मावेन गुणों को जोड़ रहा है sonar.exclusions। नीचे स्थिर jquery निर्देशिका और स्थिर pdf दर्शक निर्देशिका के बहिष्करण के साथ एक नमूना pom फ़ाइल है।

<project >
<modelVersion>4.0.0</modelVersion>
<artifactId>my Artifact</artifactId>
<!-- Enviroment variables can be referenced as such: ${env.PATH} -->
<packaging>war</packaging>
<url>http://maven.apache.org</url>

<properties>

    <junit.version>4.9</junit.version>
    <mockito.version>1.9.5</mockito.version>
    <jackson.version>1.9.7</jackson.version>
    <powermock.version>1.5</powermock.version>

    <!--Exclude the files Here-->
    <sonar.exclusions>src/main/webapp/static/jquery_ui/*,src/main/webapp/static/pdf-viewer/*,src/main/webapp/static/pdf-viewer/**,src/main/webapp/static/pdf-viewer/**/*</sonar.exclusions>
</properties>


7

सबसे आसान तरीका सर्वर शुरू करने के बाद सर्वर URL पर जाना है (लोकलहोस्ट: 8080) इसके बाद व्यवस्थापक के रूप में लॉगिन करें, सेटिंग्स पर जाएं> बहिष्करण> स्रोत फ़ाइल बहिष्करण- यहां अपने पैकेज जोड़ें। सर्वर को पुनरारंभ करें।


2

आप सोनार के किस संस्करण का उपयोग कर रहे हैं? एक विकल्प है जिसे " सोनार.स्कैप्डमॉड्यूल्स = yourmodulename " कहा जाता है ।

यह पूरे मॉड्यूल को छोड़ देगा। इसलिए इसके प्रति सजग रहें।


12
WARN - 'sonar.skippedModules' संपत्ति 4.3 संस्करण के बाद से निकाली गई है और इसका अब उपयोग नहीं किया जाना चाहिए।
झेंग काई

1

बस यह उल्लेख करने के लिए कि एक बार आपने सोनार की फ़ाइलों को बाहर कर दिया था, जैकोको प्लगइन के लिए भी ऐसा ही करें:

<configuration>
<excludes>     
<exclude>com/acme/model/persistence/entity/TransactionEntity*</exclude>
<exclude>com/acme/model/persistence/ModelConstants.class</exclude>
</excludes>
</configuration> 

1

अल्पविराम से अलग किए गए फ़ोल्डर पथ जोड़ें sonar.exclusions=**/abc/**,**/def/**

यह एक कोणीय परियोजना में काम करता है


1

यदि आप एक Azure DevOps उपयोगकर्ता हैं, जो फ़ाइलों और फ़ोल्डरों को बाहर करने के लिए दोनों की तलाश कर रहे हैं, तो यहाँ जाएँ:

  1. अपनी पाइपलाइन संपादित करें
  2. सुनिश्चित करें कि आपके पास "सोनारक्यूब पर विश्लेषण तैयार करें" कार्य जोड़ा गया है। यदि आपको इसे कॉन्फ़िगर करने में सहायता की आवश्यकता है, तो आपको कहीं और देखना होगा। सुझाव: यदि आप लिंक प्रबंधित नहीं कर रहे हैं तो UI पाइपलाइन संपादक बनाम yaml संपादक का उपयोग करें। वर्तमान में, yaml से UI को रूपांतरित करने का कोई तरीका नहीं है। बस पाइपलाइन को फिर से बनाएं। अगर git का उपयोग कर रहे हैं, तो आप अपने रेपो की जड़ से yaml को हटा सकते हैं।
  3. "सोनारक्यूब पर विश्लेषण तैयार करें" कार्य के 'उन्नत' अनुभाग के तहत, आप बहिष्करण जोड़ सकते हैं। विशिष्ट बहिष्करण प्रारूपों के लिए दूसरों द्वारा दी गई सलाह देखें।

उदाहरण:

# Additional properties that will be passed to the scanner, 
# Put one key=value per line, example:
# sonar.exclusions=**/*.bin
sonar.exclusions=MyProjectName/MyWebContentFolder/**

नोट: यदि आप मार्ग पर निश्चित नहीं हैं, तो आप सोनारक्बी में जा सकते हैं, अपनी परियोजना को देख सकते हैं, सभी या नए 'कोड की गंध' देख सकते हैं और जिस पथ की आपको आवश्यकता है, वह प्रत्येक समस्या के समूह से ऊपर सूचीबद्ध है। आप किसी फ़ाइल का पूरा रास्ता पकड़ सकते हैं या इन उदाहरणों की तरह विडल्स का उपयोग कर सकते हैं:

  • MyProjectName / MyCodeFile.cs
  • MyProjectName / **

यदि आपके पास 'रन कोड एनालिसिस' कार्य नहीं है, तो ऐसा करें और इसे 'बिल्ड समाधान ** / * स्लन' कार्य के बाद कहीं रखें।

सहेजें और कतार और फिर बहिष्करण कार्य करने के लिए अपने सोनारक्बी सर्वर की जाँच करें।


0

इस लाइन को अपने सोनार-project.properties फ़ाइल में जोड़ें

ex: sonar.exclusions = src / *। java सावधान रहें यदि आप एक फ़ोल्डर को बाहर करना चाहते हैं और फ़ोल्डर के अंदर एक फाइल है जिसे आपको पहले फ़ाइलों को बाहर करना होगा या फ़ाइलों को एक-एक करके जोड़ना होगा उदाहरण के लिए कल्पना करें कि नीचे एक फ़ोल्डर है :

src/app.java src/controllers/home.java src/services/test.java

तुम्हें यह करना ही है: sonar.exclusions=src/app.java,src/controllers/*.java,src/services/*.java

इसने मेरे लिए काम किया


0

आप उसी के साथ कर सकते हैं build.gradle

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java"
  }
}

और यदि आप अधिक फ़ाइलों / निर्देशिकाओं को बाहर करना चाहते हैं तो:

sonarqube {
properties {
    property "sonar.exclusions", "**/src/java/test/**/*.java, **/src/java/main/**/*.java"
  }
}

-1

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

sonar.exclusions=src/**/wwwroot/**/*.js,src/**/wwwroot/**/*.css

यह किसी भी .js और .css फ़ाइलों को "src" फ़ोल्डर (प्रोजेक्ट रूट) के उप निर्देशिकाओं में से एक के रूप में प्रदर्शित होने वाले फ़ोल्डर "wwwroot" के किसी भी उप निर्देशिका के अंतर्गत रखता है।


यह अन्य उत्तरों से काफी भिन्न प्रतीत नहीं होता है। यह कई अन्य उत्तरों की तरह ही डबल स्टार वाइल्डकार्ड का उपयोग करता है। यह मेल नहीं खाता कि प्रश्न को बाहर करने की कोशिश कर रहा था।
स्टीफन ओस्टरमिलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.