Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用Lint和SonarQube分析Android项目_Java_Android_Gradle_Sonarqube_Android Gradle Plugin - Fatal编程技术网

Java 用Lint和SonarQube分析Android项目

Java 用Lint和SonarQube分析Android项目,java,android,gradle,sonarqube,android-gradle-plugin,Java,Android,Gradle,Sonarqube,Android Gradle Plugin,我真的有一个'溢出'试图使这些东西一起工作。我按照这里的指示:最终得到了一台SonarQube 5.1.1服务器,安装了Android Lint插件1.1。然后,我将我的多模块Gradle构建配置为与SonarQube插件一起使用:请参阅下面根配置中的代码片段 plugins { id 'org.sonarqube' version '1.0' } sonarqube { properties { property 'sonar.host.url', 'son

我真的有一个'溢出'试图使这些东西一起工作。我按照这里的指示:最终得到了一台SonarQube 5.1.1服务器,安装了Android Lint插件1.1。然后,我将我的多模块Gradle构建配置为与SonarQube插件一起使用:请参阅下面根配置中的代码片段

plugins {
    id 'org.sonarqube' version '1.0'
}

sonarqube {
    properties {

        property 'sonar.host.url', 'sonarqube-server:9000'
        property 'sonar.jdbc.url', 'jdbc:mysql://sonarqube-db:3306/sonar?useUnicode=true&characterEncoding=utf8'
        property 'sonar.jdbc.driverClassName', 'com.mysql.jdbc.Driver'
        property 'sonar.jdbc.username', 'sonar'
        property 'sonar.jdbc.password', 'sonar'
        property 'sonar.sourceEncoding', 'UTF-8'
        property 'sonar.login', 'admin'
        property 'sonar.password', 'admin'

        property 'sonar.profile', 'Android Lint'

        property 'sonar.import_unknown_files', true
        property 'sonar.android.lint.report', 'build/outputs/lint-results.xml'
    }
}
然后我运行
lint sonaqube
task来执行分析。因此,我得到了大量关于“retrolambda”项目的Lint错误(
java.lang.UnsupportedOperationException:Unknown ASTNode child:LambdaExpression
),这是很正常的,每个模块都有
Lint results.xml
(附带HTML版本)文件,其中包含发现问题的描述。报告称,共发现8个错误和434个警告。但当sonarqube插件试图将结果上传到sonarqube服务器时,出现了问题。日志中充满了“找不到文件”和“找不到规则”消息。当处理结束时,SonarQube服务器上的项目没有报告任何问题

我想知道,出了什么问题?我检查了路径,所有文件都在那里。我看了所有我能达成的讨论,似乎我的配置是正确的,我做的每件事都是正确的。有没有人有任何线索,我遗漏了什么,还有什么需要检查?欢迎提出任何建议或想法


如果有一种方法可以使用外部SonarQube Runner导入lint数据,我也会很高兴,因为这个工具似乎比Gradle插件更容易预测和稳定。

你的Gradle设置似乎很好,你在SonarQube服务器上安装了安卓插件了吗

我看不到你的问题上的这一步,如果不是转到设置->系统->更新中心并安装Android插件


安装后,您需要重新启动SonarQube服务器并重新运行sonar runner。

我成功地完成了一个多模块android项目。因为完整的构建文件占用了太多的空间,所以我只在这里显示相关部分

在父项目的build.gradle中,我设置:

在我设置的应用程序项目(和任何其他子项目)中:


这是SonarQube插件开始分析项目的最低设置。

lint报告中的路径是否正确?它们是相对的还是绝对的?单个模块的分析是否成功?仅供参考,以下是为Sonar Runner分析配置多模块项目的文档:您能否分享您提到的关于无法找到文件/规则的错误消息?可能有助于找出问题所在。关于使用sonar runner导入lint报告的想法:如果您为sonar-runner.Wow配置
sonar.android.lint.report
属性,这应该是可行的。我一直在寻找解决办法,这让我很开心。尽管AndroidStudio仍然抱怨sonarqube的“属性”无法应用于groovy.lang.Closure。。。WTF sonar.profile属性已被删除,现在必须通过Sonarqube UI进行设置:*出错原因:任务执行失败::app:compiledBugJavaWithJavaC'>javax/xml/bind/JAXBException我在运行gradlew sonarqube时遇到了这个错误。
buildscript {
    ...
    dependencies { classpath 'com.android.tools.build:gradle:1.5.0'
    ...
}
plugins { id "org.sonarqube" version "1.1" }
sonarqube {
    properties {
        property "sonar.profile", "Android Lint"
        property "sonar.sources", "./src/main/java"
    }
}