SonarQube是代碼檢查工具,採用B/S架構,幫助檢查代碼缺陷,改善代碼質量,提高開發速度,通過插件形式,可以支持Java、C、C++、JavaScripe等等二十幾種編程語言的代碼質量管理與檢測,能對接jenkins等自動化工具。
SonarQube7.9後不支持mysql,因此採用postgresql
1.安裝Java
1.1安裝jdk11
#yum install -y java-11-openjdk java-11-openjdk-devel
1.2配置環境
#vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el7_7.x86_64/
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
2.安裝postgresql
#yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y
#yum install postgresql10-contrib postgresql10-server -y
#/usr/pgsql-10/bin/postgresql-10-setup initdb
#systemctl start postgresql-10
#systemctl enable postgresql-10.service
3.登錄postgresql並設置密碼
# su - postgres
-bash-4.2$ psql
postgres=# create database sonar;
postgres=# create user sonar;
postgres=# alter user sonar with password 'sonar';
postgres=# alter role sonar createdb;
postgres=#alter role sonar superuser;
postgres=#alter role sonar createrole;
postgres=# alter database sonar owner to sonar;
postgres=# \q
-bash-4.2$ exit
4.安裝SonarQube
4.1下載安裝包
#wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.2.0.32929.zip
#unzip sonarqube-8.2.0.32929.zip
#mv sonarqube-8.2.0.32929 /usr/local/sonarqube-8.2
4.2配置SonarQube
#vi /usr/local/sonarqube-8.2/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.jdbc.maxActive=60
sonar.jdbc.maxIdle=5
sonar.jdbc.minIdle=2
sonar.jdbc.maxWait=5000
sonar.jdbc.minEvictableIdleTimeMillis=600000
sonar.jdbc.timeBetweenEvictionRunsMillis=30000
sonar.jdbc.removeAbandoned=true
sonar.jdbc.removeAbandonedTimeout=60
5.安裝sonar-scanner
5.1下載sonar-scanner安裝包
#unzip sonar-scanner-cli-4.2.0.1873-linux.zip
#mv sonar-scanner-4.2.0.1873-linux/ /usr/local/sonar-scanner-4.2
5.2配置
#vi /usr/local/sonar-scanner-4.2/conf/sonar-scanner.properties
sonar.host.url=http://localhost:9000
6. 配置sonar賬號
6.1賬號添加
#adduser sonar -s /sbin/nologin
#chown -R sonar:sonar /usr/local/sonar-scanner-4.2
#chown -R sonar:sonar /usr/local/sonarqube-8.2
6.2配置環境變量
#vi /etc/profile
export SONAR_HOME=/usr/local/sonarqube-8.2
export SONAR_RUNNER_HOME=/usr/local/sonar-scanner-4.2
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
export PATH=$PATH:$SONAR_HOME/bin
#source /etc/profile
7.啓動服務
6.1關閉防火牆
#systemctl disable firewalld
7.2設置服務
#vi /etc/systemd/system/sonar.service
[Unit]
Description=SonarQube Server
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/sonarqube-8.2/bin/linux-x86-64/sonar.sh start
ExecStop= /usr/local/sonarqube-8.2/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=4096
User=sonar
Group=sonar
Restart=on-failure
[Install]
WantedBy=multi-user.target
#systemctl restart sonar.service
#systemctl enable sonar.service
7.3web訪問
username:admin
password: admin
8.關於啓動報錯
app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143
這個報錯一般是數據庫連接問題,請查看/usr/local/sonarqube-8.2/logs/web.log
app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1
這個報錯一般是es不能使用root啓動原因導致
Caused by: org.postgresql.util.PSQLException: ERROR: no schema has been selected to create in
是因爲沒權限,要注意授權
java.lang.IllegalStateException: Fail to connect to database
無法連接數據庫,注意IP地址