sonarqube And Eslint And CheckStyle 增量扫描

参考: GitHub - om-prakash-sharma/sonar-scan-incremental-analysis: scripts to automatically run sonar scanner for last committed files.

1.sonarqube 增量扫描

原理解析:

-   首先通过git 找到本次提交新增的文件

-   使用 sonar.exclusions / sonar.coverage.exclusions 将所有文件排除

-   通过sonar.inclusions参数 将新增文件传递给 sonarqube

-   即可实现sonarqube的增量扫描了

#!/bin/bash

CHANGED_FILES=""
for FILE_NAME in `git diff --name-only HEAD HEAD~1`;
  do 
	 CHANGED_FILES+="${FILE_NAME},"
  done

if [ $CHANGED_FILES ];
then
    sonar-scanner   \
        -Dsonar.projectKey=front_scan   \
        -Dsonar.host.url=http://xxxx:9000   \
        -Dsonar.login=xxxx   \
        -Dsonar.projectVersion=3.0   \
        -Dsonar.source=.   \
        -Dsonar.exclusions=.vscode/** \
        -Dsonar.coverage.exclusions=**/*.* \
        -Dsonar.inclusions=${CHANGED_FILES}
else
    echo "No need to run sonar scanner."
fi

2.eslint 增量扫描

原理解析:

-   首先通过find将所有文件追加到  .eslintignore  中

-   然后通过git将本次提交的新文件从 .eslintignore 中删除

-   即可实现eslint的增量扫描了

#!/bin/bash
find . -type f | cut -c3-1000000000 > .eslintignore

for FILE_NAME in `git diff --name-only HEAD HEAD~1`;do
    cat .eslintignore > .eslintignore.tmp
    grep -v $FILE_NAME .eslintignore.tmp > .eslintignore
    rm -f .eslintignore.tmp
done

eslint .

3.checkstyle 增量扫描

checkstyle 做增量扫描原理则更加简单

- 只需要将更新的文件检出

- 然后将所有文件并到一行, 以空格分隔开即可

 

java -jar checkstyle-9.3-all.jar -c checkstyle.xml a.java b.java -f xml -o report.xml


版权声明:本文为weixin_42236449原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。