Sonar

使用Sonar分析Ant/Maven/Gradle项目

社会主义新天地 提交于 2019-12-01 11:47:58
Java构建工具 目前Java平台三大构建工具是:Apache Ant、Apache Maven、Gradle,当然还有其他几个高效、快速的编译工具,如:Google Bazel、Facebook Buck。 关于Apache Ant、Apache Maven、Gradle三个工具的比较,可以参考: http://technologyconversations.com/2014/06/18/build-tools/ Gradle是Android默认的构建工具。 Google趋势中,三个构建工具的搜索热度曲线如下图: 有图中可见随着时间的推移,Ant的热度在下降,Maven的热度在上升,Gradle的热度在2013年后迅速增长。 使用Sonar分析Ant项目 Apache Ant默认的构建配置文件是build.xml 在项目的build.xml中定义sonar的一些properties以及一个名称为sonar的target,运行命令为ant sonar 详见: http://docs.sonarqube.org/display/SONAR/Analyzing+with+SonarQube+Scanner+for+Ant 其中sonar-ant-task-*.jar可以在Maven Central Repository中下载 使用Sonar分析Maven项目 Apache

一文搞定 SonarQube 接入 C#(.NET) 代码质量分析

会有一股神秘感。 提交于 2019-12-01 02:39:46
1. 前言 C#语言接入Sonar代码静态扫描相较于Java、Python来说,相对麻烦一些。Sonar检测C#代码时需要预先编译,而且C#代码必须用MSbuid进行编译,如果需要使用SonarQube对C#进行代码质量分析,则需要下载Sonar-Scanner-MSBuild和MSBuild,其中要求MSBuild在V14.0以上。 2. Sonar-Scanner for MSBuild安装与配置 1、下载SonarQube Scanner for MSBuild,它是C# Framework的Sonar分析插件。 下载地址: sonar-scanner-msbuild-4.3.1.1372 2、下载并解压之后,设置SonarQube Scanner for MSBuild的环境变量。 例如我的解压路径是:C:\Users\Administrator\Downloads\sonar-scanner-msbuild-4.3.1.1372-net466,则把该路径添加到Path下。 SonarQube Scanner for MSBuild解压目录如下图所示: 3、修改SonarQube.Analysis.xml文件,要修改的地方只是关于SonarQube服务器的一些配置,如服务器URL、USER、PASSWORD等,详细配置修改如下: <?xml version="1.0"

Sonar 配置代码扫描规则 与 质量配置,设置各个语言默认的扫描规则

感情迁移 提交于 2019-12-01 00:21:04
配置代码扫描规则 质量配置,设置各个语言默认的扫描规则 代码规则设置 如果认为有些扫描规则太严格了,可以把它“挂起”,以后再构建的代码扫描项目时就不会再使用本规则,例如挂起JP中的一个BUG规则: 配置指标 编辑 质量规则 Sonar 中的findBug插件, 内置了 findBus secrity Jsp 规则,但是目前的网页代码使用的不是jsp方案。所以此时会关闭相关规则。 如下 后得到 上面的 FindBugs Jsp ,然后点击此项。进入下列页面,点击配置更多规则。 进入 选择 上方的批量修改,点击挂起 即可完成。 然后回到 质量配置界面 此时如果是非默认会出现默认按钮,点击选择默认即可。 后续的代码分析会选择此规则。 来源: oschina 链接: https://my.oschina.net/u/2918544/blog/1838292

2019最新阿里P6+Java技术体系图

不羁的心 提交于 2019-11-30 19:50:49
Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架构师除了掌握Java语法,还要系统学习哪些Java相关的技术,今天分享一个, 互联网最新Java技术学习路线图。 构成架构师的技能体系 二、阅读源码,分析源码知识点总汇 这张图详细介绍了源码中所用到的经典设计思想及常用设计模式,先打好内功基础,了解大牛是如何写代码的,从而吸收大牛的代码功力。 结合 Spring5 和 MyBatis源码 ,带你理解作者框架思维,帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。 三、分布式架构 有了大牛的代码功底之后,接下来可以更好地学习分布式架构技术。 透彻理解分布式架构的好处和优点 必然性,适应市场需求,能够去找一些更大的平台发展,提升自己的综合技术能力和薪资。 了解从传统架构到分布式架构演变过程所带来的技术变革,将理论和实战相结合,透彻理解分布式架构及其解决方案。 从分布式架构原理,到分布式架构策略,再到分布式架构中间件,最后在加上分布式架构实战,让程序员可以在技术深度和技术广度上得到飞跃的提升,成为互联网行业所需要的T型人才。 四、微服务架构技能总汇 随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显

CentOS安装SonarQube7.9.1

一笑奈何 提交于 2019-11-30 18:02:37
1、准备 SonarQube版本:sonarqube-7.9.1.zip,官网地址: https://www.sonarqube.org/downloads/ jdk版本:jdk-11.0.4_linux-x64_bin.tar.gz(sonarqube从7.9起,不再支持jdk11以下版本) 数据库:PostgreSQL 10.10(sonarqube从7.8起,不再支持mysql)(功能验证也可以SonarQube内置的数据库,这样就不需要改数据库配置) 2、安装PostgreSQL 详见: CentOS安装PostgreSQL 3、安装JDK tar -zxvf /var/ftp/pub/jdk-11.0.4_linux-x64_bin.tar.gz // 解压安装包 ln -s /usr/local/jdk-11.0.4/bin/java /usr/bin/ // 创建软连接 也可以不用创建软连接,直接修改$SONARQUBE_HOME/conf/wrapper.conf文件中的wrapper.java.command参数,指定java命令行位置 wrapper.java.command=/usr/local/jdk-11.0.4/bin/java 4、解压SonarQube yum install -y zip unzip // 安装解压工具 unzip /var/ftp

[sonarqube的使用] sonarlint在idea&eclipse中安装与使用

白昼怎懂夜的黑 提交于 2019-11-30 14:25:49
介绍 ​ 代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测。集成了CheckStyle,PMD,Findbugs等工具校验规则,具有重复代码发现,代码测试覆盖率,代码注释率,及所有的检测率变化追踪的功能特性。 特点 ​ SonarQube:开源的代码质量管控平台,我们使用的 http://localhost:9000即为SonarQube。 ​ SonarLint:一个扩展插件,可以安装在idea与eclipse等开发工具中 Eclipse中的使用 1、 安装 ​ help -> eclipse marketplace...,搜索sonarlint, Install。 2、 使用 打开java文件,soanrlint会自动进行检测,对于不规范或有问题的代码会在下方划蓝色波浪线,如图: 鼠标放在蓝色部分会有弹框显示错误信息或建议修改信息 点击“open description of rule”可以查看具体的错误描述,错误示例及修改示例。 在项目或单个java文件上右键 -> sonarlint -> Analyze 进行手动操作分析。这样SonarLint Report面板中查看所有的异常信息 3、Server

[sonarqube的使用] sonarqube安装

纵然是瞬间 提交于 2019-11-30 12:55:22
一 . SonarQube代码质量检查工具简介 Sonar (SonarQube)是一个开源平台,用于管理源代码的质量 Sonar 不只是一个质量数据报告工具,更是代码质量管理平台 支持Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。 潜在的缺陷 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。 糟糕的复杂度分布 文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程 序中的任何组件的改变都将可能导致需要全面的回归测试。 重复 显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。 注释不足或者过多 没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。 缺乏单元测试 sonar可以很方便地统计并展示单元测试覆盖率。 糟糕的设计

sonar报错volatile

谁说胖子不能爱 提交于 2019-11-30 04:35:39
问题发生 原先代码如下: //认证授权码 private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Marking an array volatile means that the array itself will always be read fresh and never thread cached, but the items in the array will not be. Similarly, marking a mutable object field volatile means the object reference is volatile but the object itself is not, and other threads may not see updates to the object state. This can be salvaged with arrays by using the relevant AtomicArray class, such as AtomicIntegerArray, instead. For mutable objects, the volatile

Docker方式安装SonarQube

我与影子孤独终老i 提交于 2019-11-29 23:22:19
获取镜像 docker pull postgres:10 docker pull sonarqube:7.9.1-community 启动镜像 docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=1 --name postgres postgres:10 docker run -d -p 9000:9000 -e "SONARQUBE_JDBC_URL=jdbc:postgresql://192.168.114.131:5432/sonar" -e "SONARQUBE_JDBC_USERNAME=postgres" -e "SONARQUBE_JDBC_PASSWORD=1" --name sonarqube sonarqube:7.9.1-community 来源: https://www.cnblogs.com/zhi-leaf/p/11538413.html

Jenkins与Sonar4.1集成问题解决

南楼画角 提交于 2019-11-29 20:41:09
最近做Jenkins与Sonar的集成,因为不想在Maven中增加配置,所以直接使用Sonar Runner进行代码分析,但是在完成集成配置后,在Jenkins中做构建的时候最后在提交Sonar分析的位置报错,异常如下 [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0:sonar (default-cli) on project docx4jdemo: Can not execute Sonar: UnsupportedOperationException -> [Help 1]org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0:sonar (default-cli) on project docx4jdemo: Can not execute Sonar at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal