目录
一,sonar是什么
二,安装sonar
(一)docker中安装sonar
(二)liunx中安装sonar
三,sonar扫描代码
(一)扫描非maven项目代码
1,命令描述
2,案例
一,sonar是什么
Sonar是一个静态代码分析和代码质量管理工具。它可以检查代码中的错误、缺陷、漏洞和重复代码等问题,并提供可视化报告和图表来帮助开发人员了解代码质量和可维护性。Sonar支持多种编程语言,包括Java、C#、Objective-C、C/C++、JavaScript等。
二,安装sonar
(一)docker中安装sonar
可以按照以下步骤在Docker中安装Sonar:
- 首先,您需要从Docker Hub下载SonarQube镜像。在终端中运行以下命令:
docker pull sonarqube
- 接下来,创建一个新的容器并将SonarQube运行在其中。在终端中运行以下命令:
docker run -d --name sonarqube -p 9000:9000 sonarqube
这将在后台启动一个新的SonarQube容器,并将其映射到主机的9000端口上。
- 容器启动后,您可以通过浏览器访问SonarQube Web界面。在浏览器中输入以下网址: http://localhost:9000/
- 前往SonarQube Web界面,您需要创建一个新的项目。单击"创建新项目"按钮,然后填写项目的名称和键。
- 在项目创建完成后,您需要为项目设置代码扫描任务。单击"设置"按钮,然后选择"扫描"选项卡。您可以选择在SonarQube Web界面上运行扫描任务,或者在本地机器上使用SonarScanner运行任务。
如果您选择在本地机器上运行扫描任务,您需要安装SonarScanner。您可以从此网址下载SonarScanner: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ - 在本地机器上安装SonarScanner后,您可以在项目的根目录中运行以下命令:
sonar-scanner
- 扫描任务运行完毕后,您可以返回SonarQube Web界面并查看报告。单击项目名称,然后选择"报告"选项卡。
至此,您已经成功在Docker中安装并使用了SonarQube。
(二)liunx中安装sonar
您可以按照以下步骤在Linux中安装Sonar:
- 下载Sonar安装包:您可以从Sonar官方网站下载最新的Sonar安装包。请注意,根据您的操作系统和架构,您需要下载正确的安装包。
- 安装Java:Sonar需要Java来运行。在Linux中,您可以使用以下命令安装Java:
sudo apt-get install openjdk-8-jdk
如果您已经安装了Java,则可以跳过此步骤。
- 解压缩Sonar安装包:使用以下命令将Sonar安装包解压缩到您选择的目录中:
tar zxvf sonarqube-x.x.x.zip -C /opt
将“x.x.x”替换为您下载的Sonar版本号。
- 配置Sonar:编辑Sonar配置文件并按照您的需要进行修改。您可以使用以下命令打开配置文件:
sudo nano /opt/sonarqube-x.x.x/conf/sonar.properties
然后,根据您的系统设置修改以下参数:
sonar.jdbc.username=<database-username>
sonar.jdbc.password=<database-password>
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.web.host=<your-server-ip>
sonar.web.port=<your-server-port>
sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError
将上面的参数替换为您的数据库连接信息和您的服务器IP和端口。
- 启动Sonar:使用以下命令启动Sonar:
/opt/sonarqube-x.x.x/bin/linux-x86-64/sonar.sh start
- 访问Sonar:现在,您可以使用浏览器访问Sonar Web界面。默认情况下,Sonar运行在9000端口,因此您可以在浏览器中输入以下网址访问Sonar:
http://<your-server-ip>:9000
现在,您已经成功地在Linux中安装和配置了Sonar。
三,sonar扫描代码
(一)扫描非maven项目代码
1,命令描述
sonar-scanner.bat 启动命令
-Dsonar.projectKey= 输入的名称就是在sonar中看到的项目名称
-Dsonar.sources= 写.(点)代表是当前目录下的源代码
-Dsonar.host.url=这个是sonar的服务地址
-Dsonar.login=token (下面有token的获取办法)
-Dsonar.java.binaries= class 所在文件夹
-Dsonar.sourceEncoding= 编码
2.案例
sonar-scanner.bat
-Dsonar.projectKey=preject1
-Dsonar.sources=./src
-Dsonar.host.url=http://ip:8000
-Dsonar.login=uuidhkjasndasdasdqw
-Dsonar.java.binaries=./build
-Dsonar.sourceEncoding=UTF-8