Linux:sonarqube扫描安装以及项目导出

本文详细介绍了如何在特定机器配置上安装SonarQube9.9.3,包括拉取镜像、创建挂载目录、启动容器、访问服务以及汉化插件的安装。还涉及了Maven本地项目扫描、PDF导出插件配置及遇到的常见错误解决方案。
摘要由CSDN通过智能技术生成

sonarqube安装

1、机器配置

        4g,2u

        maven:3.6.3

        java:11

2、拉取镜像

docker pull sonarqube:9.9.3-community #这里拉取9.9.3的社区版

3、创建挂载目录

mkdir -p /data/sonarqube/{data,logs,extensions} #需要映射的目录
chown  -R 777 /data/sonarqube/ 		#其实默认是1000的普通用户权限,也可以设置777,防止权限问题导致无法启动访问

4、启动镜像

docker run \
--name=sonarqube \
--privileged=true \
--restart=always \
--stop-timeout 3600 \
-e TZ="Asia/Shanghai" \
-p 9000:9000 \
-v /data/sonarqube/data:/opt/sonarqube/data \
-v /data/sonarqube/logs:/opt/sonarqube/logs \
-v /data/sonarqube/extensions:/opt/sonarqube/extensions \
-d sonarqube:9.9.3-community

5、访问服务

本机ip加端口 默认为admin/admin,然后修改密码

sonarqube汉化插件

1、下载插件

#切换到映射的目录
cd /data/sonarqube/extensions/
#创建插件目录
mkdir plugins
#下载插件
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-10.3/sonar-l10n-zh-plugin-10.3.jar

2、重启容器

docker restart 容器id

sonarqube本地项目扫描maven

1、创建项目

2、本地运行命令

1、更新settings.xml文件,该文件也定义了源等信息,未免最后报错,需要一份源settings.xml文件进行更新

配置sonarqube信息,在相应模块添加如下内容

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://192.93.22.22:9000 #sonarqube客户端的ip和端口
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

2、进入到对应项目pom目录,执行

3、出现如下报错:

又要来了最全的包后,再次执行后,发现pom文件有定义的插件不通过,删掉pom文件内阻碍的插件的行,重新执行后,又发现setting.xml文件内定义的仓库地址是http类型的,maven在3.8后只支持https的,所以又将maven降级到3.6.3,java版本变成了11,再次执行,发现又报错一些找不到符号之类的错误

4、重新执行命令

mvn clean verify sonar:sonar \ 
-Dmaven.test.skip=true  \ 
-Dsonar.projectKey=test   \ 
-Dsonar.host.url=http://192.168.26.30:9000  \
-Dsonar.login=sqp_dc642ca473b9005b1214506c17bd5c3f933fc64d

使用Maven打包的时候,可能会因为单元测试打包失败,这时候就需要跳过单元测试。

  • mvn clean install -DskipTests
  • mvn clean install -Dmaven.test.skip=true

- DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下

- Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类

使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码的编译;

使用 mvn package -DskipTests 跳过单元测试,但是会继续编译。

5、编译成功

编译成功后,刚才创建的项目界面会自动刷新

sonarqube项目pdf导出

1、下载pdf插件

下载 sonar-pdf-plugin 插件,下载链接:sonar-pdf-plugin 发行版 - Gitee.com

2、安装插件

进入到 extensions/plugins 插件目录内,把下载好的插件移入该目录

docker restart 容器id

3、配置pdf导出插件

4、重新扫描项目后才能pdf导出,所以需要重新执行下扫描命令

成功界面如下:

进入sonarqube端:

错误及解决:

1、进入download界面后如下

需要重新扫描

2、扫描不成功,报错:[ERROR] Something went wrong storing the PDF at server side. Error: {"errors":[{"msg":"An error has occurred. Please contact your administrator"}]}

代表存储错误,解决办法:

查看sonarqube的web日志发现,java报错无法在/opt/sonarqube/pdf-files内写入文件

进入容器后,创建对应目录,是发现没有写权限:mkdir: cannot create directory ‘pdf-files’: Permission denied,在容器外用docke -u 创建

docker exec -it -u root d24445aa8ec5 mkdir /opt/sonarqube/pdf-files
docker exec -it -u root d24445aa8ec5 chmod -R 777 /opt/sonarqube/pdf-files

重新扫描后,pdf成功上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qyoung_青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值