Sonar扫描的NPE问题
直到我修改为这样的代码才通过——
public class DetectorImport {
public String check1(Nonentity nonentity) {
String s;
if(nonentity == null) {
s = null;
}else {
s = nonentity.getName();
}
if(s !=null) {
s = s.replaceAll("(", "(");
}
return s;
}
}
Additional-info-for-service-provider
在线图片格式转换,包括webp格式转jpg、png。
Basic-Javaagent
man java
-javaagent:jarpath[=options]
Loads the specified Java programming language agent. For more information about instrumenting Java applications, see the java.lang.instrument package description in the Java API documentation at http://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html
文档说明部分介绍了基本概念
Provides services that allow Java programming language agents to instrument programs running on the JVM.
Basic-Kafka
https://kafka.apache.org/quickstart
- Java8 + Windows环境
- Zookeeper环境
启动Server时,会提示java.lang.NumberFormatException: For input string: "initial.rebalance.delay.ms"
错误,根据这里的提示,在window环境下执行:.\bin\windows\kafka-server-start.bat .\config\server.properties
可以正常启动——这里启动的还是kafka的server,用来连接zookeeper的server,需要先启动zk。否则会超时自动结束。
Basic-Kibana
假装天天接触大数据的样子= =|
Basic的意思就是:了解这个东西是做什么的?如何配置安装?简单实用方法是怎样的?
有了这个概念,就可以上手操作。
Basic-SonarQube-SonarScanner
SonarQube Continuous code quality made easy.
Start In Two Minute
- 下载 SonarQube downloads,使用Sonar qube 7.6版本,Java8支持;最新版本8.0,需要Java 11+
- 解压后将bin目录添加到环境变量
- 启动SonarQube服务 (默认会使用内置的数据库,可单独配置数据库)
# On Windows, execute:
C:\sonarqube\bin\windows-x86-xx\StartSonar.bat
# On other operating systems, as a non-root user execute:
/opt/sonarqube/bin/[OS]/sonar.sh console
# server log
...
jvm 1 | 2019.11.20 10:38:32 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1 | 2019.11.20 10:38:32 INFO app[][o.s.a.SchedulerImpl] SonarQube is up
JaCoCo--skipping-jacoco-due-to-missing-data-file
昨天开始有一个多module的项目一直无法获取到单测覆盖率结果。
初步跟踪了一下执行log,发现多个提示:“skipping jacoco due to missing data file”。
JaCoCo-Multi-Module
Sonar-Web-api(一)
数据库定义,但 不建议直接查询DB,使用Sonar提供的Web_Api,默认在SonarQube服务的/web_api下可以查看到提供的所有API信息,如http://localhost:9000/web_api/api/project_analyses
Sonar-Web-api(二)
每个项目主页: http://example.sonar.com/dashboard?id=growth_client:restful-api-seller
最近一次current扫描时间信息: http://example.sonar.com/api/ce/component?component=projectGroup1:projectNameExample
{
"queue":[
],
"current":{
"id":"AW7LG4x5rEHtiKcxk1nN",
"type":"REPORT",
"componentId":"AWvpaqUHahV-mFVL-A1-",
"componentKey":"projectGroup1:projectNameExample",
"componentName":"projectGroup1:projectNameExample",
"componentQualifier":"TRK",
"analysisId":"AW7LG5GFQzwg82DVBAfm",
"status":"SUCCESS",
"submittedAt":"2019-12-03T17:33:30+0800",
"submitterLogin":"admin",
"startedAt":"2019-12-03T17:33:31+0800",
"executedAt":"2019-12-03T17:33:33+0800",
"executionTimeMs":1694,
"logs":false,
"hasScannerContext":true,
"organization":"default-organization",
"warningCount":1,
"warnings":[
]
}
}
SonarLint-使用
基本上开箱即用。
安装
手动下载:
不同版本
下载到本地,然后从Idea的settings->Plugins->settings install plugin from disk
,需要保留zip包的形式。
下载针对idea的zip包:https://www.sonarlint.org/intellij/
Sonar实践问题记录(一)
跟踪了一天的问题,记录一下。
问题一:
目前最大的问题为获取Sonar数据时一直处于超时状态。
第一步,怀疑在超时时间内一直请求,相当于对server做了压力测试,导致server端假死。
Sonar实践问题记录(七)node版本排查
采用事实上标准而不是通用标准。所以前端项目扫描使用ESlint,而不是Sonar自带的扫描规则。(如何使用的逻辑还没有搞清楚,使用的环境已是ready状态)。
Sonar实践问题记录(三)-SonarQube
8.0版本需要Java 11,java8环境启动时就会提示。可以下载7.6版本
Sonar实践问题记录(九):sonar-scanner分析参数
ERROR: Validation of project reactor failed: “groupName:projectName:BranchName-22695-合规视频” is not a valid project or module key. Allowed characters are alphanumeric, ‘-’, ‘_’, ‘.’ and ‘:’, with at least one non-digit. ERROR: ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
Sonar实践问题记录(二)
Sonar实践问题记录(五)-插件Plugins
插件也需要与主版本兼容。 例如7.6版本的中文包需要使用sonar-l10n-zh-plugin-1.26.jar
, 8.0版本的sonarqube使用的为sonar-l10n-zh-plugin-8.0.jar
Sonar实践问题记录(八)jacoco-plugin
SonarQube 7.4以上版本默认自动jacoco plugin,可以分析jacoco生成的xml格式的测试报告。
在 配置 – 应用市场 可以看到已安装的——
Sonar实践问题记录(六)webhook
使用SonarScanner扫描结束后,会将结果提交给SonarQube,其中的Computer Engine会负责分析数据——这会消耗一定的时间。尤其是免费版本只支持一个Worker工作,不可避免会有排队现象。
Sonar实践问题记录(四)
配置
默认配置包括以下几个方面——
- DATABASE
- WEB SERVER
- SSO AUTHENTICATION
- LDAP CONFIGURATION
- ELASTICSEARCH
- UPDATE CENTER
- LOGGING
- OTHERS
默认配置文件sonar.properties
中对每一项有详细的说明。
进程信息跟踪:top-jps-jstack
万事多用Man