sonar+oracle

整体安装部署环境说明

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即可。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sonar是一个用于代码质量管理的开源工具,它可以帮助开发团队发现和修复代码中的问题,并提供可持续的代码改进。Sonar提供的分析报告可以帮助开发者更有效地管理和改进他们的代码。它可以检查代码的质量、漏洞和代码覆盖率等方面,并基于这些指标提供建议和修复意见。 Nexus是一个用于管理软件库和组件的工具。它提供了一种集中管理和控制的方式,使团队可以更方便地访问、使用和共享软件组件。Nexus可以存储和管理各种不同类型的组件,如Java库、Maven项目和Docker镜像等,这对于团队开发和构建应用程序非常有帮助。 Git是一个分布式版本控制系统,它是开源的并且非常流行。使用Git,团队可以跟踪和管理代码的变化,并且可以很方便地进行代码的合并和分支。Git可以在不同的开发者之间共享和协作开发代码,其分布式的特性使得开发者可以在离线状态下继续工作,并且很容易回滚到之前的版本。 Sonar Nexus Git三者可以结合使用来提高软件开发流程的效率和质量。在开发过程中,使用Sonar进行代码质量分析和改进,可以帮助开发者发现潜在的问题并提供改进意见。Nexus可以作为软件库和组件库,方便团队成员共享和管理代码组件。Git作为版本控制系统可以跟踪和管理代码的变化,使得团队可以更好地进行协作开发和代码管理。通过三者的结合使用,团队可以更好地管理和改进代码,并提高软件开发过程的质量和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值