docker 方式安装SonarQube:lts和中文插件


title: docker 方式安装SonarQube:lts和中文插件
meta:

  • name: description
    content: SonarQube docker
  • name: keywords
    content: SonarQube docker
    created: 2020/04/14
    updated: 2020/04/14
    tags:
  • SonarQube

1、获取 postgresql 的镜像

docker pull postgres

2、启动 postgresql

mkdir -p /data/postgresql/data
mkdir -p /var/lib/postgresql
ln -s /data/postgresql/data/ /var/lib/postgresql/data
docker run --name postgresqlDB -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -v /data/postgresql/data:/var/lib/postgresql/data -d postgres

3、获取 sonarqube 的镜像

docker pull sonarqube:lts

4、启动 sonarqube

mkdir -p /data/sonarqube/data
mkdir -p /data/sonarqube/extensions
chmod -R 777 /data/sonarqube/
chmod -R 777 /opt/sonarqube/
ln -s /data/sonarqube /opt/sonarqube
mkdir -p /opt/sonarqube/extensions/plugins
docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresqlDB:5432/sonar -p 9000:9000 -d -v /data/sonarqube/data:/opt/sonarqube/data -v /data/sonarqube/extensions:/opt/sonarqube/extensions sonarqube

5、代码质量检验sonar平台

1.打开 http://localhost:9000/ , 点击 "Log in"

登录账号:admin 密码:admin


sonarqube01.jpg

6、初始状态确认

检查sonar 缺省的Java等语言的Sonar Way是否存在,详细如下图所示


sonarqube02.jpg

关键是quality profile页面中,缺少quality profile。


sonarqube03.jpg

安装语言插件
由于本文是使用typescript的Angular应用,安装SonarTS和SonarJS即可。而SonarJS安装时也会顺便带上SonarTS,所以只需要安装SonarJS即可。


sonarqube04.jpg

安装完毕之后,可以看到SonarTS也已经被安装了。


sonarqube05.jpg

另外同时安装一下Java语言的插件


sonarqube06.jpg

使用界面方式安装,SonarQube也是将此jar文件放至extensions目录下,具体来说分如下步骤:
步骤1: 下载开始后,jar文件会保存在downloads目录下,jar文件在下载中的状态:会形成sonar-*.jar.tmp文件。
步骤2: 下载完毕之后,会自动将downloads目录下的.tmp后缀删除
本文示例的SonarTS、SonarJS和SonarJava的安装,实际上对应了三个文件,直接以jar文件结尾的表明已经下载完毕,否则还会带有.tmp后缀。下载的中间状态如下所示

liumiaocn:extensions liumiao$ tree .
.
├── downloads
│ ├── sonar-java-plugin-5.14.0.18788.jar.tmp
│ ├── sonar-javascript-plugin-6.1.0.11503.jar.tmp
│ └── sonar-typescript-plugin-2.1.0.4359.jar
└── plugins

2 directories, 3 files
liumiaocn:extensions liumiao$

如果下载时速度不好的情况下,此时会显示非常之慢,查看日志又往往没有任何提示,此时可以通过查看一下中间文件的大小来进行确认是否仍在正常执行

此时再确认SonarQube的页面,就会发现已经成功了


sonarqube07.jpg

点击Restart Server进行重启, 以管理员身份登录,可以确认到quality profile已经添加了三种语言的Sonar way规则。实际本文示例只是用到一种。


sonarqube08.jpg

7、安装中文插件

进入github: https://github.com/SonarQubeCommunity/sonar-l10n-zh

sonarqube09.jpg

查看兼容的列表
SonarQube7.9 对应的是sonar-l10n-zh 1.29
进入https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases 下载1.29 的版本
然后将sonar-l10n-zh-plugin-1.29.jar 上传到/opt/sonarqube/extensions/plugins 目录下。重启后,中文插件就可以生效了。

8、以 Maven 项目为例,

Maven 项目

pom.xml 添加配置:

    <!-- 代码质量检测 -->
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <sonar.host.url>http://127.0.0.1:9000/</sonar.host.url>
            </properties>
        </profile>
    </profiles>

8.1执行命令,检测代码质量

$ mvn sonar:sonar

8.2 成功之后,返回到浏览器,就可以浏览自己的项目的代码质量了

sonarqube10.jpg
sonarqube11.jpg
sonarqube12.jpg

目前码云上代码分析工具首推的也是 sonarqube,支持各种语言的程序检测,使用简单方便,感觉非常适合微服务的代码评审,强烈推荐。

9、idea配置sonar步骤如下:

9.1 安装sonar插件,如果安装失败就多安装几次,博主就是安装了两次,第一次安装失败了,第二次才安装成功的。

安装成功后重启idea


sonarqube13.jpg

9.2 添加sonar服务器连接

sonarqube14.jpg
sonarqube15.jpg
sonarqube16.jpg
sonarqube17.jpg

9.3 选择项目对应的规则

sonarqube18.jpg

点击OK之后则配置完成

9.4 idea下方会出现SonarLint选项

mvn sonar:sonar
-Dsonar.projectKey=project
-Dsonar.host.url=http://ip:9000
-Dsonar.login=6c0344dbbf9aa168c6f9b2dde3371108dcba9269

sonarqube19.jpg

9.5 打开一个文件点击运行按钮,则最该代码进行扫描,会自动显示扫描的问题,双击问题则会定位到相应的代码。

sonarqube20.jpg

10、安装错误记录

  • 错误描述:
    ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]


    sonarqube21.jpg
  • 解决办法:

vi /etc/sysctl.conf 
vm.max_map_count=655360
sysctl -p
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容