首先声明一点:mysql 版本要与 sonarsube 版本对应
本文档 mysql5.7 sonarsube7.8(据说 7.9 之后不支持 mysql)

1.基础环境搭建:
一键安装网站:https://oneinstack.com/auto/

wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --jdk_option 2 --db_option 2 --dbinstallmethod 1 --dbrootpwd Lz123456 --ssh_port 22 --reboot

安装 mysql5.7 jdk1.8 开放 ssh 22 端口(一键安装自动配置环境变量)
自动安装完成之后开放 mysql3306(其他端口也在这里面开放)注:阿里云也要配置端口规则
5 编辑防火墙,增加端口
vi /etc/sysconfig/iptables # 编辑防火墙配置文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq! # 保存退出
systemctl restart iptables.service # 重启防火墙使配置生效
systemctl enable iptables.service # 设置防火墙开机启动

2.sonarqube 环境搭建
sonarqube 包下载地址:https://www.sonarqube.org/sonarqube-7-8/

通过 xftp 工具拉倒服务器上

解压到之指定文件夹

unzip -d //usr/local/ sonarqube-7.8.zip

重命名文件夹

mv /usr/local/sonarqube-7.8 /usr/local/sonarqube

修改 sonar.properties

vim /usr/local/sonarqube/conf/sonar.properties

##增加下面的配置信息
#数据库url
sonar.jdbc.url=jdbc:mysql://ip地址:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#数据库用户名
sonar.jdbc.username=sonar
#数据库密码
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
#sonarweb登录账号以及密码
sonar.login=admin
sonar.password=admin
#注:不建议修改端口号
#应用端口号(默认9000
sonar.web.port=9000
新增用户并授权文件夹
因为sonarqubeelasticsearch不允许root用户启动,所以得新增用户

## 创建普通用户
useradd sonarqube
passwd sonarqube

## 给普通用户授sonarqube的权限
chmod -R 777 /usr/local/sonarqube
## 修改elasticsearch.yml
vim /usr/local/sonarqube/elasticsearch/config/elasticsearch.yml

## 增加 
network.host: 0.0.0.0

## 修改/etc/security/limits.conf文件,添加或修改如下行:
#<domain>      <type>  <item>         <value>
#
*                hard    nofile          65536
*                soft    nofile          65536
root soft nproc 131072
root hard nproc 131072


## 修改 /etc/sysctl.conf 文件,添加如下行:(重启虚拟机生效)

vm.max_map_count=655360

##重启之后查看
sysctl -p

vm.max_map_count=655360
mysql创建sonar相关
进入mysql

mysql -uroot -p
Enter password
创建sonar相关

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
启动SonarQube
## 进入SonarQubebin目录
cd /usr/local/sonarqube/bin/linux-x86-64/

## 切换sonarqube用户
su sonarqube

## 启动sonarqube
./sonar.sh start

启动成功

Starting SonarQube...
Started SonarQube.
可以查看日志看是否启动成功

cd /usr/local/sonarqube/logs

ls
## 日志文件  依次查看.log文件看是否启动报错
access.log  ce.log  es.log  README.txt  sonar.log  web.log

sonarqube启动执行一会之后,去浏览器打开 ip地址:port进入页面。

使用和插件(离线安装)
使用配置的账户密码登录 login
admin

admin

中文插件
登录之后选择按下图步骤操作;

因为插件市场默认是最新的插件。所以插件的 github 下载往期版本(7.8)

下载后将jar包直接传输到服务器linuxsonarqube的插件目录下

## 插件目录
/usr/local/sonarqube/extensions/plugins/
导入之后在sonarqube用户下重启sonarqube

cd /usr/local/sonarqube/bin/linux-x86-64

su sonarqube

./sonar.sh restart

重启之后就是中文版页面了。

cd /usr/local/sonarqube/bin/linux-x86-64
su sonarqube
./sonar.sh restart

外网 ip:端口号
直接访问网站登入之后创建项目

选中类型,本文是 java + maven

会得到一串码

得到码之后 mvn 命令运行

注意事项:先配置mavensonar插件
配置分两种我只尝试过第一种

本地maven仓库setting.xml 添加
<pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- 配置 Sonar Host地址,默认:http://localhost:9000 -->
                <sonar.host.url>
                  http://8.129.70.102:9000
                </sonar.host.url>
                              <!-- 代码分析包括哪些文件需要分析,英文逗号分隔  -->
              <sonar.inclusions>**/*.java,**/*.xml</sonar.inclusions>
            </properties>
        </profile>
     </profiles>


进入maven项目目录执行mvn clean verify sonar:sonar



----------非必操作项
如果想制定sonar-maven-plugin插件版本 例如3.3.0.603版本 可以修改项目pom.xml
<build>
  <plugins>
    <plugin>
      <groupId>org.sonarsource.scanner.maven</groupId>
      <artifactId>sonar-maven-plugin</artifactId>
      <version>3.3.0.603</version>
    </plugin>
  </plugins>
</build>

也可以直接执行
mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar

结果:

大部分转载大佬:
https://www.sonarqube.org/sonarqube-7-8/


↙↙↙阅读原文可查看相关链接,并与作者交流