一 引言
阿里巴巴代码规范就是pmd的基础上新增了p3c的规则,因此,在sonarqube中添加阿里巴巴代码规范的时候需要:第一,在sonarqube应用市场中下载pmd插件,第二,根据本操作手册新增p3c的规则
二 操作手册
需要在sonarqube节点上操作:
1 下载plugin
git clone https://github.com/slowwalkerlcr/sonar-p3c-pmd/tree/pmd_alibaba
#其他参考:
https://github.com/rhinoceros/sonar-p3c-pmd/releases/tag/pmd-3.2.0-beta-with-p3c1.3.4-pmd6.10.0
2 下载配置maven
tar xvfz apache-maven-3.6.2-bin.tar.gz -C /usr/local
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.2
export PATH=${MAVEN_HOME}/bin:$PATH
注意:如果没有配置jdk8环境的话则需要先配置jdk8
mvn -version
3 mvn打包源码并将插件接入sonarqube
1)在clone好的安装包目录下执行: mvn clean install
注意:最后会报test出错,该错误可以忽略
2)找到下面的安装包,并将其复制到sonarqube的plugin目录下,可以重命名为sonar-pmd-plugin-3.2.0-SNAPSHOT.jar
可以看到pmd的插件包:
3)重启sonarqube
systemctl restart sonar
4 重新登录查看规则并测试分析代码
找到项目——设置其quality gate即可使用alibaba代码规约
分析结果:
注意:下面是jenkins pipeline中的script,记录一下,避免忘了
node("master") {
stage('清理目录') {
cleanWs()
}
stage('Gitlab') {
git branch: 'master', url: 'http://gitlab_url/root/demo.git'
}
stage('SonarQube') {
def scannerHome = /opt/apps/sonar-scanner #这里是scanner的安装目录
def project = 'demo' #这个定义了要扫描的项目名称
withSonarQubeEnv('sonarqube') { #sonarqube是Jenkins的系统设置中定义的sonarqube server的名字
cmd="${scannerHome}/bin/sonar-scanner -Dsonar.projectKey="+project+" -Dsonar.projectName="+project+" -Dsonar.sources=. -Dsonar.login=sonar-token -Dsonar.java.binaries=." #token是sonarqube管理员账户的token值
sh cmd
}
}
}