使用Lint和SonarQube分析Android项目
我真的得到了一个“溢出”,试图让这些东西一起工作。我按照这里的指示:http://docs.sonarqube.org/display/PLUG/Android+Lint+Plugin,终于得到了一个安装了Android Lint插件1.1的SonarQube 5.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'
}
}
之后,我运行任务来执行分析。结果,我收到了大量关于“retrolambda”项目()的Lint错误,这是很正常的,并且每个模块(附带HTML版本)文件,其中包含对所发现问题的描述。该报告称,发现了8个错误和434个警告。但是当sonarqube插件试图将结果上传到SonarQube服务器时,事情出了问题。日志中充满了“找不到文件”和“找不到规则”消息。当处理结束时,我的项目在SonarQube服务器上没有报告任何问题。lint sonarqube
java.lang.UnsupportedOperationException: Unknown ASTNode child: LambdaExpression
lint-results.xml
我想知道,出了什么问题?我检查了路径,所有文件都在那里。我查看了所有我能达到的讨论,似乎我的配置是正确的,我做对了一切。有没有人有任何线索,我错过了什么,需要检查什么?欢迎任何建议或想法。
如果有一种方法可以使用外部SonarQube Runner导入lint数据,我也会很高兴,因为这个工具似乎比Gradle插件更可预测和稳定。