2016-06-10 3 views
0

Android 프로젝트에서 Gradle에 마지막으로 SonarQube 플러그인을 사용하려고합니다. http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+GradleSonar 용 Android 라이브러리 및 클래스를 포함시키는 방법은 무엇인가요?

내 root.gradle :

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.0' 
    } 
} 

plugins { 
    id "org.sonarqube" version "2.0.1" 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

내 app.gradle 내가 실행

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 


    defaultConfig { 
     applicationId "com.xxxxxx.xxxxxx" 
     minSdkVersion 15 
     targetSdkVersion 17 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

     versionCode 232 
     versionName "2.3.2" 
    } 

    buildTypes { 
     debug { 
      debuggable true 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    lintOptions { 
     checkReleaseBuilds false 
     abortOnError false 
    } 

    testOptions { 
     unitTests.returnDefaultValues = true 
    } 
} 

sonarqube { 
    properties { 
     property "sonar.projectName", "xxxxx" 
     property "sonar.projectKey", "org.sonarqube:com.xxxxxxx.xxxxxxxx" 
     property "sonar.sources", "src/main/java" 
     property "sonar.java.binaries","build/intermediates/classes" 
     property "sonar.tests", "src/test/java" 
     property "sonar.android.lint.report", "build/lint-results.xml" 
     property "sonar.junit.reportsPath", "build/test-results/debug/" 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:23.4.0' 
    androidTestCompile 'junit:junit:4.12' 
    testCompile 'junit:junit:4.12' 
} 

./gradlew sonarqube -Dsonar.verbose=true 

나는이 따라로그 :

Incremental java compilation is an incubating feature. 
:sonarqube 
Bytecode of dependencies was not provided for analysis of source files, you might end up with less precise results. Bytecode can be provided using sonar.java.libraries property 
sonar.binaries and sonar.libraries are deprecated since version 2.5 of sonar-java-plugin, please use sonar.java.binaries and sonar.java.libraries instead 
Bytecode of dependencies was not provided for analysis of test files, you might end up with less precise results. Bytecode can be provided using sonar.java.test.libraries property 

Class 'com/xxxxxx/xxxxxxx/ChangelogActivity' is not accessible through the ClassLoader. 
Class 'com/xxxxxx/xxxxxxx/ChangelogActivity$1' is not accessible through the ClassLoader. 
Class 'com/xxxxxx/xxxxxxx/ConfigActivity' is not accessible through the ClassLoader. 
Class 'com/xxxxxx/xxxxxxx/ConfigActivity$1' is not accessible through the ClassLoader. 

모든 클래스에서이 오류 메시지가 표시됩니다.

+0

이 Gradle을 시도 ... 의존성 { 컴파일 'com.qualinsight.plugins.sonarqube을 : qualinsight - 플러그인 - sonarqube 라이선스 : 1.0.0' } –

+0

왜이 플러그인을 추가? 이 플러그인에 대한 설명 : 상용 플러그인 보안을위한 QualInsight 라이센싱 라이브러리. 내 문제와 관련이있는 링크는 무엇입니까? – LaurentY

답변

2

Android Gradle 프로젝트 (예 : 단일 프로젝트에서 여러 가지 맛이 나는 기능)의 복잡성으로 인해 추가 구성없이 SonarQube 분석을 실행하는 데 필요한 모든 정보를 자동으로 수집 할 수 없습니다.

따르십시오 https://jira.sonarsource.com/browse/SONARGRADL-6

+0

정보 주셔서 감사합니다. 소나에서 Android-Gradle 애플리케이션을 분석하는 대안은 무엇입니까? – LaurentY

+1

필요한 모든 속성을 수동으로 제공해야합니다. 특히 sonar.java.libraries 및 sonar.java.binaries가 좋습니다. sonar.java.libraries는 Android SDK의 JAR 파일을 많이 나열해야하므로 약간 지루할 수 있습니다. –