使用Docker方式安装Sonar 7.8 扫描JDK1.8项目

为什么选用 7.8? 因为 sonar8.x 之后不支持 jdk8 了,实实在在的踩了坑。
如果使用的是 JDK 8(我还是Java 8程序员的),需要使用 7.8 版本的 SonarQube。

一、使用Docker方式安装Sonar

拉取镜像

docker pull sonarqube:7.8-community

创建工作目录

mkdir -p /data/volume/sonarqube

修改系统参数

编辑文件/etc/sysctl.conf,添加如下内容


fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

//让配置生效
sysctl -p
运行一个容器
docker run -d --name sonartest sonarqube:7.8-community

//将容器内重要文件复制到宿主机
docker cp sonartest:/opt/sonarqube/conf /data/volume/sonarqube
docker cp sonartest:/opt/sonarqube/data /data/volume/sonarqube
docker cp sonartest:/opt/sonarqube/logs /data/volume/sonarqube
docker cp sonartest:/opt/sonarqube/extensions /data/volume/sonarqube

//停止容器后删除
docker stop sonartest
docker rm sonartest

//创建网络
docker network create sonarqube-tier

//给文件赋权
chmod -R 777 /data/volume/sonarqube/
创建Mysql容器并运行

此处因为我已经有Mysql数据库了,因此不再安装Mysql,只是创建相关用户。

docker pull mysql:8.0

 mkdir /data/volume/mysql8/

docker run --name mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root -v /data/volume/mysql8/:/var/lib/mysql/ -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

//进入mysql
docker exec -it mysql /bin/bash
mysql -uroot -p # 密码 
GRANT ALL ON *.* TO 'root'@'%';  #所有网络都可访问
create database sonar;     #创建 sonarqube 数据库

# 添加远程登录用户:sonar ,并授予权限。
CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';  # mysql8.0 

CREATE USER 'sonar'@'%' IDENTIFIED BY 'sonar';  # mysql5.6

GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';

flush privileges;    # 刷新权限
创建Sonar容器
docker run -d --name sonar -p 9090:9000 \
 -e ALLOW_EMPTY_PASSWORD=yes \
 -e SONARQUBE_DATABASE_USER=sonar \
 -e SONARQUBE_DATABASE_NAME=sonar \
 -e SONARQUBE_DATABASE_PASSWORD=sonar \
 -e SONARQUBE_JDBC_URL="jdbc:mysql://10.10.10.181:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
 --restart=always \
 --net sonarqube-tier \
 --privileged=true \
 -v /data/volume/sonarqube/logs:/opt/sonarqube/logs \
 -v /data/volume/sonarqube/conf:/opt/sonarqube/conf \
 -v /data/volume/sonarqube/data:/opt/sonarqube/data \
 -v /data/volume/sonarqube/extensions:/opt/sonarqube/extensions\
 sonarqube:7.8-community

一开始使用MySQL8,报如下错误,未解决,后来更换为MySQL5.6 解决

image.png

后记:使用 sonarqube 对 java 项目代码进行扫描的时候,java 项目的版本不能低于 sonar 的编译版本。

sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11

如下为 7.8 版本相关插件对应的版本号:

image.png

这些我已经下载下来了,通过百度网盘可以下载

下载解压后放到sonarqube/extensions/plugins/目录下,注意,安装包中存在sonar-java-plugin-5.13.0.18197.jar,所以需要把下载中的sonar-java-plugin-5.13.1.18282.jar删除,或者删除之前那个,两个保留一个即可,否则启动会报错。然后重启Sonar。

链接: https://pan.baidu.com/s/1wTKlffBAHib6KE8ASyUViQ?pwd=avdh 提取码: avdh 复制这段内容后打开百度网盘手机App,操作更方便哦

访问 sonarqube 应用
地址: http://10.10.10.181:9090/

默认登录账号密码:admin/admin

二、实际项目应用

配置 Maven 的 setting.xml 文件
<settings>
    <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://192.168.20.105:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>
配置项目或模块的 Pom 文件
<build>
        <plugins>
        <!--使用 SonarQube 分析 Maven 项目-->
        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.6.0.1398</version>
        </plugin>
        </plugins>
</build>

执行maven扫描
mvn clean verify sonar:sonar -D maven.test.skip=true

image.png

image.png

sonar 服务上面的项目名称和项目中 pom.xml 中配置的项目 name 一致。

image.png

image.png

SonarQube 的安装、配置及 Maven 项目的使用

sonarqube-Community-7.8 配置_sonarqube7.8

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇