搭建SonarQube分析Android代码遇到的问题

最近在学习SonarQube,想用来分析java、Android、iOS项目的静态代码,SonarQube的搭建比较简单,我按照网上的教程搭建的很顺利,这里就不写了,就记录下我遇到的一些问题~

1、添加Android Lint插件,无法启动Sonar

由于SonarQube官网被封,我尝试无数次之后终于下到了Android Lint插件(sonar-android-plugin-1.1.jar),可是放到plugin文件夹下后,启动Sonar就报错,后来发现原来是因为Android Lint插件需要sdk1.7+,而当时环境是sdk1.6,于是我下载了sdk1.7,然后在SonarQube根目录,新建一个sonar.sh文件,临时设置环境变量指向jdk1.7,内容如下:

cd `dirname $0`
BIN_DIR=`pwd`/bin/linux-x86-64
export JAVA_HOME=/usr/local/java/jdk1.7.0_25
export CLASSPATH=./$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
sh $BIN_DIR/sonar.sh $1

之后再启动SonarQube,就不用到/bin/linux-x86-64下去执行了,直接执行这个脚本即可,成功启动

2、Sonar-runner无法执行,提示需要sdk1.7+

跟第一个问题一样,编辑sonar-runner-2.4/bin/sonar-runner文件,在JAVA_CMD="`which java`"这句之前临时设置环境变量指向1.7,sonar-runner就能正常执行啦~

export JAVA_HOME=/usr/local/java/jdk1.7.0_25
export PATH=$JAVA_HOME/bin:$PATH

3、分析代码时,提示找不到jar包

其实该路径下是有jar包的,但是分析事就是报很多error说找不到jar包,后来查了很多资料,发现是sonar-project.properties写的有问题,网上很多教程,包括官方文档都是建议写成“sonar.sources=src”,但是我看有个大神写的是“sonar.sources=.”,我试了下解决了找不到jar包的问题

4、分析完成后,技术债务为0

当时我就震惊了,据我对公司Android代码质量的了解,不可能没有技术债务,一定是我打开的方式不对,我找了个java项目测试了下,是能够正常计算出技术债务的,那说明不是SonarQube配置的问题,唯一的区别就是分析java项目时用的是Sonar way规则(默认规则),分析Android项目时用的是Android Lint规则,后来用Sonar Way规则分析Android项目,也有技术债务数据了,可是我又舍不得Android Lint规则,于是我新建了一个规则,添加Sonar way、Android Lint和FindBugs规则,搞定~

你可能感兴趣的:(搭建SonarQube分析Android代码遇到的问题)