android - 如何在 Build.Gradle 中添加 SonarQube 插件并获取当前项目的报告

标签 android gradle android-gradle-2.0

我尝试下载 SonarQube 并按照此链接 SonarQube Setup and add SonarQube plugins in build.gradle 执行每个步骤。

能够从 Command 执行 SonarQube,但是当我在 Build.Gradle 中添加 SonarCube 插件时,当我尝试同步项目时,它显示了这样的错误,

错误#25:所有 buildscript {} block 必须出现在脚本中的任何插件 {} block 之前

但是我在build.gradle中添加了SonarQube的插件和属性,

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

并添加 SonarQube 的属性,

sonarqube {
properties {
    property "sonar.projectName", "MyApplication2"
    property "sonar.projectKey", "SQKey"
    property "sonar.sources","src/main/java"
    property "sonar.language","java"
    property "sonar.sourceEncoding", "UTF-8"
}}

Android Studio 版本是 3.1.3 和 Gradle 版本是 4.4 并且,下载的 SonarQube 版本是 7.2.1

我的问题是,SonarQube 7.2.1 与 Gradle 版本 4.4 不兼容吗?

请在命令提示符中查看下图(SonarQube 已启动), SonarQube up in command prompt

关于如何使用 sonarqube 生成当前项目的报告并在 cmd 提示符中执行命令有什么想法吗?

错误 # 33:在插件 {} block 之前只允许使用 buildscript {} 和其他插件 {} 脚本 block ,不允许使用其他语句

请找到下面的build.gradle文件,

 buildscript {
repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.1.3'
    classpath 'com.google.gms:google-services:2.1.0'
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: "org.sonarqube"



repositories {
maven { url 'https://maven.fabric.io/public' }
}


apply plugin: 'com.google.gms.google-services'

plugins {
id "org.sonarqube" version "7.2.1"
}
sonarqube{
properties{
    property "sonar.projectName", "Example 16-8"
    property "sonar.projectKey", "example 16-6-key"
    property "sonar.sources","src/com.example.project"
    property "sonar.language","java"
    property "sonar.sourceEncoding", "UTF-8"
    property "sonar.jacoco.reportPath", 
    "build/jacoco/testDebugUnitTest.exec"
    //        property "sonar.exclusions", "src/main/java/com/foo/Foo.java"
    }}
    allprojects {
    repositories {
    jcenter()
    google()
    }
    }
    android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    }

我在上面的 build.gradle 文件中犯了什么错误以及如何运行 sonarQube 并生成当前项目的报告?

并且,请找到下面的图片 - 当我添加 http://localhost:9000/ 时在我的浏览器中,它不显示我的任何 Android 项目。请引用此图片以引用 SonarQube 在我的浏览器中的外观,

When I add http://localhost:9000/ in my browser, it does not show any of my Android Projects. Please refer this Image how does sonarqube looks in my browser,

尝试创建 Gradle.properties 文件来添加此行,

systemProp.sonar.host.url=http://localhost:9000
systemProp.sonar.login=admin
systemProp.sonar.password=admin

打开 Android Studio 终端并执行此操作, .\gradlew 声纳库

请参见下图,当我尝试在 Android Studio 终端(底部)上执行命令时,出现 Sonar Qube 异常。

I am getting Sonar Qube Exception when I tried to execute the command on Terminal.

最佳答案

您收到的错误#33来自使用plugins{} block 时必须遵循的严格语法,Gradle文档中对此进行了描述:https://docs.gradle.org/current/dsl/org.gradle.plugin.use.PluginDependenciesSpec.html (参见“严格语法”部分) 在您的 build.gradle 脚本中,您在其他一些指令之后添加了“plugins{}” block ,这是不允许的。 我猜另一个错误 #25 也是出于同样的原因。

您应该尝试重写脚本并首先移动“buildscript” block ,然后移动“plugins” block ,最后移动脚本的其他部分

希望这有帮助。

关于android - 如何在 Build.Gradle 中添加 SonarQube 插件并获取当前项目的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51819721/

相关文章:

实现google places sdk时Android构建错误

spring - 获取java.lang.IllegalStateException:使用Springs运行Cucumber测试时无法加载CacheAwareContextLoaderDelegate异常

java - 错误 :Execution failed for task : java. util.zip.ZipException : duplicate entry: android/support/v4/graphics/BitmapCompat. 类

android - 首次运行 AS 2.0 和 gradle 2.0 所花费的时间

android - 如何使用存储访问框架在 sd 卡中创建新文件夹?

java - 在 Node.js 中使用 BodyParser 解析 JSON 数组

gradle - JavaFX 11 : Create a jar file with Gradle

android - 无法解析com.github.KingsMentor:MobileVisionBarcodeScanner:2.0.0

java - 如何在 Android 默认日历中显示添加的事件

android - 为什么我的 Android Listview 在我点击它时会从透明变为不透明?