Sonar qube не показывает результаты для Android Lint

введите здесь описание изображения

Это мой build.gradle,

apply plugin: 'org.sonarqube'

sonarqube {

    properties  {

        property "sonar.host.url", "http://10.52.211.255:9000/sonar"

        property "sonar.sources", "src/main/java"

        property "sonar.language", "java"

        property "sonar.profile", "Android Lint"

    }
}

код работает для

свойство "sonar.profile", "sonar way".

Но мне это нужно для Android Lint. В чем может быть проблема с нулевым результатом.


person charitha amarasinghe    schedule 08.08.2016    source источник
comment
Пожалуйста, обратитесь к stackoverflow.com/questions/37831982/. Похоже, что sonar.profile устарел, и нам может потребоваться установить профиль непосредственно из пользовательского интерфейса.   -  person    schedule 08.08.2016


Ответы (5)


измените свойства сонара следующим образом:

apply plugin: "org.sonarqube"

sonarqube {

    properties {

        property "sonar.projectName", "appa"

        property "sonar.projectKey", "appa_app"

        property "sonar.projectVersion", "1.0"

        property "sonar.analysis.mode", "publish"

        property "sonar.language", "java"

        property 'sonar.sourceEncoding', "UTF-8"

        property "sonar.sources", "./src/main"

        //property "sonar.exclusions", "**/*Entity.java"

      //  property "sonar.exclusions", "src/main/java/com/apparkb/model/**, **/*Entity.java"

        property "sonar.host.url", "http://192.168.21.33:9000"

        property "sonar.login", "admin"

        property "sonar.profile", "testlint"

        property 'sonar.import_unknown_files', true

        property "sonar.android.lint.report", "./build/outputs/lint-results-debug.xml"

        property "sonar.password", "admin"

        property "sonar.java.binaries", "build/"



    }
}

Для создания lint-results-debug.xml вам нужно будет выполнить следующую команду на терминале студии:

./gradlew lint

Он сгенерирует отсутствующий XML-отчет. Будьте осторожны, он может генерировать отчет для каждого варианта сборки (Debug по умолчанию будет генерировать build/outputs/lint-results-debug.xml). Таким образом, вы можете вызывать lintDebug, lintRelease... в зависимости от вашего варианта сборки.

И измените свойства lint на:

lintOptions {
        // set to true to turn off analysis progress reporting by lint

        quiet true

        // if true, stop the gradle build if errors are found

        abortOnError false

        // do not ignore warnings

        warningsAsErrors true
    }

теперь, если вы бежите ./gradlew sonarqube

вы получите результаты, показанные на самом деле в отчете о локальном файле, который фактически размещается на сервере

скриншот после анализа

person Amal p    schedule 04.04.2017

Sonar Lint не передает проблемы на сервер SonarQube. Он предназначен для мгновенной обратной связи с разработчиком по коду в локальной рабочей области.

Чтобы показать проблемы на сервере Sonarqube, вам необходимо выполнить анализ сонара. Например, с помощью сонарного сканера (ранее известного как сонар-бегун)

person Gautam Jose    schedule 08.08.2016

Это сработало для меня и начало сообщать о проблемах Android lint на панели сонара:

Моя версия сонара 7.6.2.

Добавьте ниже в свойства сонара:

property "sonar.androidLint.reportPaths", "${project.buildDir}/reports/lint-results.xml"

После изменения вышеуказанного запуска: ./gradlew lint sonarqube

Он будет отображаться в разделах Code Smells android:usesCleartextTraffic=true Атрибут usesCleartextTraffic используется только на уровне API 23 и выше (текущий минимум 21) android-lint

Пожалуйста, обратитесь к более подробной информации о том, как отображать отчеты внешнего анализатора на приборной панели сонара.

Импорт документации Sonar от третьих лиц Проверить наличие языка Kotlin

Отчеты внешнего анализатора

person takharsh    schedule 21.07.2020

Эти изменения кодов помогли мне решить эту проблему.

В Грейдле,

  • Я уже добавил файлы lint в свой проект.
  • Я добавил lintOptions в gardle.
  • Затем добавлены новые свойства для сонаркуба в Gradle.
apply plugin: 'com.android.application'
android {
    lintOptions {
        // set to true to turn off analysis progress reporting by lint
        quiet true
        // if true, stop the gradle build if errors are found
        abortOnError false
        // if true, only report errors
        ignoreWarnings true
    }
    compileSdkVersion 24
    buildToolsVersion "23.0.1"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.pearson.writer"
        minSdkVersion 11
        targetSdkVersion 21
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.0.1"
    }
}
apply plugin: 'org.sonarqube'
sonarqube {
    properties  {
        property "sonar.projectName", "Writer40 sonarway"
        property "sonar.host.url", "http://...:9000/sonar"
        property "sonar.sources", "src"
        property "sonar.import_unknown_files", "true"
        property "sonar.language", "java"
        property "sonar.profile", "Android Lint"
        property "sonar.android.lint.report", "/data/jenkins/workspace/SonarJobs/PearsonWriterSonar/writer40/build/outputs/lint-results-debug.xml"
    }
}
dependencies {
    compile files('libs/android-async-http-1.4.4.jar')
    compile files('libs/android-support-v4.jar')
    compile files('libs/libGoogleAnalyticsServices.jar')
    compile files('libs/universal-image-loader-1.7.0.jar')
}
  • Затем изменили некоторые конфигурации в Jenkins. (Пожалуйста, посмотрите на изображение)

введите здесь описание изображения

  • Прежде чем запускать сонар в jenkins, дайте команду запустить lint.

затем я получил вывод, связанный с Android Lint

Спасибо.

person charitha amarasinghe    schedule 18.08.2016

Вы должны указать режим анализа как публикацию, чтобы отправить результаты на сервер.

свойство "sonar.analysis.mode", "опубликовать"

person Anjula    schedule 05.02.2019