当前位置: 首页 > 工具软件 > Sonar > 使用案例 >

sonar+oracle

汪翰墨
2023-12-01

整体安装部署环境说明

1.sonar文件的版本为6.7.1 对应各版本下载地址为:https://binaries.sonarsource.com/Distribution/sonarqube/

2.下载sonar的对应版本的汉化包 地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases?after=sonar-l10n-zh-plugin-1.25

3.oracle数据库 11.2.* 或者12.* (具体看sonar.properties文件)

搭建环境

1.修改sonar的conf/sonar.properties文件配置,主要修改部分

#jdbc连接配置
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521/orcl
sonar.jdbc.driverClassName:oracle.jdbc.driver.OracleDriver 
#配置web管理界面的ip+port+context
sonar.web.host=192.168.5.42
sonar.web.port=9200
sonar.web.context=/sonar

#配置 Elasticsearch HTTP connector,0为自动寻找一个free的端口,可固定配置
sonar.search.port=0

#配置web等交互所需的内存大小
sonar.web.javaOpts =-Xmx8192m -Xms512m -XX:MaxPermSize=8192m
sonar.ce.javaOpts =-Xmx8192m -Xms512m -XX:MaxPermSize=8192m
sonar.search.javaOpts =-Xmx8912m -Xms512m -XX:MaxPermSize=8192m
# HTTP proxy (default none) 配置http代理访问的url
http.proxyHost=192.168.5.42
http.proxyPort=9200

2.sonar对mysql,PostgreSQL均以有jar包内置支持,对oracle没有,因此需要在extensions\jdbc-driver\oracle中放入自己的jar包提供jdbc使用。

创建数据库

CREATE TABLESPACE sonarqube
  DATAFILE 'F:/app/xxx/oradata/orcl/sonarqube.dbf' SIZE 512M
  AUTOEXTEND ON NEXT 512M MAXSIZE 20480M;

CREATE USER sonarqube IDENTIFIED BY sonarqube;
GRANT CONNECT, RESOURCE ,DBA TO sonarqube;
#注意事项,sonar的web初始化会在此表空间进行建表语句的操作,其默认的字符集编码是utf8因此我们需要创建表空间及用户之后修改自己的字符集,如果是utf8则可跳过此操作

修改表的字符集设置

#登录sqlplus,执行以下命令
SQL> connect sys/oracle as sysdba
SQL> startup
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set internal_use utf8;
SQL> shutdown immediate;
SQL> startup

3.在bin\windows-x86-64下执行StartSonar.bat文件,如果闪退证明有错误,因此我们进入dos命令行来执行StartSonar.bat文件,看日志报错。(经常会有遇到端口占用的问题,因此需注意)

sonar的日志打印顺序,也即程序的启动顺序如下

#logs目录下
es.log  #elasticsearch服务启动日志,linux下不能以root启动需要创建其他账户来使用
sonar.log #查看sonar的启动情况
web.log  #初始化jdbc连接的数据库

如果均正常,则可以在web端访问sonar的服务了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBsycy0N-1600662969833)(C:\Users\yunnuo.yang\Desktop\主界面.jpg)]

默认登录名及密码是admin admin

完成代码分析

上边我们安装的是服务端,因此我们需要在本地进行客户端的配置安装sonarscanner

进入sonar的官网搜索https://docs.sonarqube.org/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayncErXk-1600662969836)(C:\Users\yunnuo.yang\Desktop\sonar官网.jpg)]

支持maven等工具集成

后端采取集成maven来扫描java文件,具体配置参考官网完成。地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven/

#配置maven的setting文件或者在当前项目中使用
<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://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

#执行命令
mvn clean verify sonar:sonar
在与pom文件平级的目录下的dos窗口中执行此命令,也可在idea中配置插件运行
<plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>

                <version>3.4.0.905</version>
                <configuration>
                    <detail>true</detail>
                </configuration>
</plugin>
<!--在某些情况下我们需要配置一些不需要扫描的文件目录,具体的配置方法是在maven中配置下列-->

    <properties>
        <java.version>1.8</java.version>
        <sonar.exclusions>
            <!-- **代表文件夹 * 代表文件-->
            **/xxx/**
        </sonar.exclusions>
        <sonar.dynamic> reuseReports</sonar.dynamic>
        <sonar.sources>src/main/java</sonar.sources>
    </properties>

即可完成maven的扫描

2配置js扫描安装客户端,配置sonar-scanner.properties文件

#----- Default SonarQube server
sonar.host.url=http://192.168.5.42:9200/sonar

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

sonar.projectKey=javascript-prj #项目的key
sonar.projectName=JavaScript Demo Project #项目名称
sonar.projectVersion=1.0  #版本
sonar.sources=src/main/resources 扫描的目录
sonar.login=admin #登录名 密码
sonar.password=admin

Name=JavaScript Demo Project #项目名称
sonar.projectVersion=1.0 #版本
sonar.sources=src/main/resources 扫描的目录
sonar.login=admin #登录名 密码
sonar.password=admin


直接执行sonar-scanner即可。
 类似资料: