Sonarqube 扫描shell脚本

        记录保存一波,以后就不用重复写。这是我目前用的shell脚本,根据不同的项目,不同分支,以及对项目下的指定目录执行扫描,便于设置crontab定时任务。

#!/bin/bash
sys=$1
branch=$2
if [ -n $3 ];
then
  scan_path=$3
else
  scan_path=.  
fi

echo "系统简称:" $sys
echo "扫描分支:" $branch
echo "扫描路径:" $scan_path

basedir=/home/admin/repo/${sys}/$scan_path

echo "切换到目录:" ${basedir}
cd ${basedir}

local_branch_name=`echo $branch | awk -F/ '{print $NF}'`
echo "本地分支名:" $local_branch_name

echo "切换到分支:" $branch
git checkout $branch


echo "拉取分支代码:" $branch
git pull origin $local_branch_name

/home/admin/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${sys}  -Dsonar.host.url=http://10.7.12.61:9000   -Dsonar.login=79e583f26fdb19409969c0f2859699d8787297ff -Dsonar.java.binaries=${basedir} -Dsonar.sourceEncoding=UTF-8

echo `date +%Y%m%d_%H%M%S` ":" $sys $branch $scan_path >> /home/admin/logs/sonar_scan_record.log

在家目录下有个本地代码仓库--/home/admin/repo,用于存放git pull下来的项目。

项目名称用作脚本的第一个参数系统简称--'sys', 

git分支用作脚本的第二个参数系统简称--'branch', 

项目指定目录作脚本的第三个参数扫描路径--'scan_path' ,为可选参数,不填就扫描项目下所有文件

# 实例一:
# 扫描apph5项目,分支为sit-new,扫描所有文件
/home/admin/bin/sonar_scan.sh apph5 sit-new

# 实例二:
# 扫描apph5项目,分支为sit-new, 扫描项目下制定目录WEB-INF
/home/admin/bin/sonar_scan.sh apph5 sit-new WEB-INF

最后记录下sonar扫描ce内存溢出,优化的配置项

# 文件sonar.properties

sonar.jdbc.username=yourusername
sonar.jdbc.password=yourdbpass
sonar.jdbc.url=jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521/orcl
sonar.web.port=9000
sonar.ce.javaOpts=-Xmx3G -Xms2G -XX:+HeapDumpOnOutOfMemoryError
sonar.log.level=INFO

你可能感兴趣的:(bash)