2013-11-21 3 views
9

मैं थोड़ी देर के लिए कोशिश कर रहा हूं, सोनार को अपने एंड्रॉइड प्रोजेक्ट का निरीक्षण और विश्लेषण करने के लिए। लेकिन अब तक कोई भाग्य नहीं है। जिस परियोजना को मैं सोनार में कार्यान्वित करने की कोशिश कर रहा हूं वह एक परीक्षण परियोजना है जिसमें कुछ कक्षाओं के साथ 2 कक्षाएं हैं। सभी परियोजना की src निर्देशिका में भरवां।सोनार: मैं एंड्रॉइड प्रोजेक्ट का निरीक्षण करने के लिए ग्रेडल का उपयोग कैसे करूं

तो यही वह है जो मुझे अब तक मिला है।

निम्न सेटिंग्स के साथ एक build.gradle फ़ाइल:

buildscript { 
repositories { 
    mavenCentral() 
} 

dependencies { 
    classpath 'com.android.tools.build:gradle:0.6.+' 
} 
} 

apply plugin: 'android' 
apply plugin: 'sonar' 
apply plugin: "sonar-runner" 

android { 

buildToolsVersion "18.0.1" 
compileSdkVersion 18 

defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 16 
} 

sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['com.example.GradleAndroidTest'] 
     resources.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
    } 
    instrumentTest.setRoot('test') 
} 


} 

sonar { 
server { 
    url = "http://sonar.someserver.int" 
} 
database { 
    url = "jdbc:mysql://sonar.someserver.int:3306/sonar" 
    driverClassName = "com.mysql.jdbc.Driver" 
    username = "*****" 
    password = "*****" 
} 
} 

sonarRunner { 
sonarProperties { 
    property "sonar.host.url", "http://sonar.someserver.int" 
    property "sonar.jdbc.url", "jdbc:mysql://sonar.someserver.int:3306/sonar" 
    property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver" 
    property "sonar.jdbc.username", "*****" 
    property "sonar.jdbc.password", "*****" 
} 
} 

इस परियोजना मैं कमांड प्रॉम्प्ट में परियोजना के रूट निर्देशिका जाना परीक्षण करने और में टाइप करने के लिए:

Gradle sonarRunner

इसके बाद यह परियोजना सोनारक्यूब पर दिखाई गई है लेकिन कोई statisctics दिखाया नहीं गया है। कोड की कोई लाइन नहीं, कुछ भी नहीं। मेरा सवाल है क्या मैं कुछ भूल रहा हूँ? क्या मुझसे कुछ गलत हो रही है।

मुझे ग्रेबल और सोनार के साथ बहुत अधिक अनुभव नहीं है इसलिए अब मैं उन लोगों से मदद लेता हूं जो करते हैं। आशा है कि आप मदद कर सकते हैं!

उत्तर

10

मुझे पता चला कि मैंने क्या गलत किया है। मैं कुछ अनिवार्य गुण जोड़ना भूल गया।

sonarProperties { 
    property "sonar.host.url", "http://sonar.someserver.int" 
    property "sonar.jdbc.url", "jdbc:mysql://sonar.someserver.int:3306/sonar" 
    property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver" 
    property "sonar.jdbc.username", "*****" 
    property "sonar.jdbc.password", "*****" 

    //I added these properties to my gradle.build 
    property "sonar.projectKey", "GradleAndroidTest" 
    property "sonar.projectName", "GradleAndroidTest" 
    property "sonar.projectVersion", "V1.0" 
    property "sonar.language", "java" 
    property "sonar.sources", "src" 
    property "sonar.binaries", "build" 
} 

@ पीटर Niederwieser के रूप में, प्लगइन इन चीजों को पूर्वनिर्धारित नहीं कर सका इसलिए मुझे उन्हें मैन्युअल रूप से जोड़ना पड़ा।

मैंने सोनार प्लगइन भी हटा दिया और इसके बजाय सोनार-धावक प्लगइन का उपयोग किया।

+6

यह निश्चित रूप से अच्छी चीजें है। आधुनिक एंड्रॉइड स्टूडियो ग्रेडल सेटअप के साथ इसका उपयोग करने के लिए, मुझे वास्तव में 'संपत्ति" sonar.sources "," src "' '' संपत्ति 'sonar.sources "," src/main/java "में बदलना पड़ा और यह काम किया! – pkk

+1

क्या आप इस सेटिंग के साथ परीक्षण जानकारी (परीक्षण गणना और परीक्षण कोवरेज) प्राप्त कर रहे हैं? @ Zlatko के प्रश्न के लिए – Zlatko

+0

+1, मैं एक बहुत ही समान सेटअप का उपयोग कर रहा हूं और मुझे आखिरी चीज की आवश्यकता है जो सोनारक्यूब पर कोड कवरेज रिपोर्ट है। – JaKXz

4

मुझे लगता है कि एक समस्या यह है कि एंड्रॉइड प्लगइन वर्तमान में अपने स्रोत सेट मॉडल का उपयोग करता है। sonarRunner प्लगइन उस मॉडल से अवगत नहीं है और इसलिए आमतौर पर ऐसी चीजों को पूर्वनिर्धारित नहीं कर सकता है। हालांकि, आप आवश्यक सोनार गुणों को स्पष्ट रूप से कॉन्फ़िगर करके, इस जानकारी को स्वयं आपूर्ति करने में सक्षम होना चाहिए।

यह पता लगाने के लिए कि sonarRunner प्लगइन द्वारा कौन से सोनार गुण पूर्वनिर्धारित हैं, कक्षा के लिए Groovydoc देखें। सोनार वेबसाइट पर सभी मौजूदा सोनार गुणों की एक सूची उपलब्ध है।

पीएस: आपको केवल sonar और sonarRunner प्लगइन में से एक को लागू करना चाहिए। मैं बाद वाले (जो पूर्व के उत्तराधिकारी है) का उपयोग करने की सलाह देता हूं, भले ही यह अभी भी ऊष्मायन कर रहा हो।

+0

आपको बहुत धन्यवाद पीटर। आपने मुझे दिया GroovyDoc लिंक एक बड़ी मदद थी। बहुत धन्यवाद और मुझसे एक बड़ा उपवास! :-) –

+2

groovydoc लिंक अब और काम नहीं करता है। –

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