2016-04-05 19 views
5

मेरे पास कई मॉड्यूल से बना एक प्रोजेक्ट है।मेवेन सोनारक्यूब बहु मॉड्यूल

मैं इन्हें सोनारक्यूब के साथ विश्लेषण करने की कोशिश कर रहा हूं। सोनार

: सोनार को सत्यापित

mvn साफ:

<dependency> 
    <groupId>org.codehaus.sonar</groupId> 
    <artifactId>sonar-maven-plugin</artifactId> 
    <version>5.1</version> 
</dependency> 

तब मैं Maven का उपयोग कर चल रहा हूँ:

मैं प्रत्येक मॉड्यूल में एक निर्भरता के रूप में सोनार Maven प्लगइन को शामिल किया है

मेवेन सफलतापूर्वक पूरा हो जाता है और मैं सोनार विश्लेषण देख सकता हूं हालांकि जब मैं सोनार यूआई खोलता हूं, तो मॉड्यूल परियोजनाओं में दिखाई नहीं दे रहे हैं।

हालांकि ...

अगर मैं एक व्यक्ति मॉड्यूल निर्देशिका से Maven आदेश चला, यह परियोजनाओं में दिख रहा है।

महसूस करें कि मुझे कुछ आसान याद आ रही है, किसी भी मदद की सराहना करें!

उत्तर

6

के बजाय एक निर्भरता के रूप में, sonar-maven-plugin जड़ pom.xml की <build> अनुभाग में, डाल इस प्रकार है:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.sonarsource.scanner.maven</groupId> 
      <artifactId>sonar-maven-plugin</artifactId> 
      <version>3.0.1</version> 
     </plugin> 
    </plugins> 
</build> 

और के बाद से यह एक बहु मॉड्यूल परियोजना है, तो आप चाहिए first perform an install from the root project and then run the sonar:sonar goal as a dedicated step, के रूप में इस प्रकार है:

इस प्रकार
mvn clean install 
mvn sonar:sonar 

अपने settings.xml या pom.xml में sonarqube सर्वर URL, specify a project property of sonar.host.url कॉन्फ़िगर करें:

0,123,
<properties> 
    <!-- Optional URL to server. Default value is http://localhost:9000 --> 
    <sonar.host.url>http://myserver:9000</sonar.host.url> 
</properties> 
+0

ऐसा लगता है कि यह काम करता है। मुझे व्यक्तिगत मॉड्यूल से चलने पर बनाए गए सोनार प्रोजेक्ट को हटाना होगा, लेकिन इसके बाद मैं प्रोजेक्ट को देख सकता हूं। ऐसा लगता है कि v5.1 प्लगइन के रूप में उपलब्ध नहीं है, मुझे इसके बजाय 2.7.1 का उपयोग करना पड़ा। एक मेवेन विशेषज्ञ इतना अनिश्चित नहीं है कि यह क्यों है ...? – timothyclifford

+1

मेवेन के लिए सोनारक्यूब स्कैनर का संस्करण सोनारक्यूब सर्वर संस्करणों का पालन नहीं कर रहा है। कृपया http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven#AnalyzingwithSonarQubeScannerforMaven-HowtoFixVersionofMavenPlugin –

+0

@ टिमोथीक्लिफोर्ड के रूप में जूलियन एच का उल्लेख है, मेवेन प्लगइन के पास सोनारक्यूब से अलग संस्करण है। मैंने सोनारक्यूब सर्वर v5.1 के साथ संगत प्लगइन के नवीनतम संस्करण के लिए groupId/artifactId/संस्करण रखने का उत्तर सही किया। – heenenee

0

सोनारक्यूब मैवेन की तरह बहु-मॉड्यूल परियोजनाओं का समर्थन करता है। इसका मतलब यह है कि एक मेवेन प्रोजेक्ट जिसमें कई मॉड्यूल हैं, जिसमें सोनारक्यूब प्रोजेक्ट में कई मॉड्यूल/घटक हैं, कई परियोजनाएं नहीं हैं।

(यह एक बहु मॉड्यूल Maven परियोजना है) उदाहरण के लिए SonarQube कोड डालें: parent project समुच्चय उप मॉड्यूल से सभी जानकारी है, तो आप अपने structure (या इसके code पेज) की जाँच करता है, तो आप सभी उप की सूची देख सकते घटक (उदाहरण के लिए: SonarQube::Core)

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

+0

निकोलस क्या आप कृपया बताएंगे कि @ हेनीनी रिपोर्ट के रूप में मेवेन के अलग-अलग आमंत्रणों की आवश्यकता क्यों है? क्योंकि यह काउंटर अंतर्ज्ञानी है और ऐसा लगता है कि मैवेन आमतौर पर कैसे काम करता है; उदाहरण के लिए, "एमवीएन क्लीन" चलाने के लिए अलग-अलग "एमवीएन इंस्टॉल" चलाने की ज़रूरत नहीं है, बस "एमवीएन क्लीन इंस्टॉल" चला सकते हैं। धन्यवाद। – chrisinmtown

संबंधित मुद्दे