是否可以关闭特定代码块的声纳(www.sonarsource.org)测量值,哪一个不想测量?
一个例子是Findbugs输出的"保留堆栈跟踪"警告.离开服务器时,我可能只想将消息传递回客户端,不包括我刚捕获的实际异常,如果客户端不知道该异常(因为客户端没有JAR,那么例如包含例外).
我在互联网上搜索过这个.有很多半的答案在那里,做Maven的属性,如${sonar.jacoco.reportPath}
,或org.jacoco:jacoco-maven-plugin:prepare-agent
或设置maven-surefire-plugin
argLine
带-javaagent
.
一些如何,这些答案,无论是单独的还是组合的,都没有产生我正在追求的东西:一个覆盖率报告,如果它被用于堆栈中更高的测试,例如正在使用的实体,则显示一个类被覆盖通过DAO,即使它没有完全涵盖在自己的模块中的测试.
有没有确定的配置,为了达到这个目的,请?
我试图排除Sonar分析目录.我在我的sonar-project.properties
文件中定义了以下属性:
sonar.sources=src/java
sonar.exclusions=src/java/test/****/*.java
Run Code Online (Sandbox Code Playgroud)
我的目录结构是:
src/java/dig
src/java/test/dig
Run Code Online (Sandbox Code Playgroud)
当我运行声纳 - 跑步者时,我得到以下信息:
INFO - Excluded sources:
INFO - src/java/test/**/*.java
INFO - Excluded tests:
INFO - **/package-info.java
Run Code Online (Sandbox Code Playgroud)
但是当我检查分析结果时,测试目录中的所有包仍然存在.
我只需要告诉Sonar不要分析测试目录及其中的任何包.
我们正在从头开始研究一个Web项目,并且正在研究以下静态代码分析工具.
该项目建立在Maven之上.我没有使用多种工具来实现这一目的,而是在寻找一个灵活的解决方案并且遇到了SonarQube.
我们是否可以通过SonarQube实现Checkstyle,PMD和Findbugs的结果?
我在Sonar上收到了这个警告.我想要解决方法在声纳上删除此警告.我的班级是这样的:
public class FilePathHelper {
private static String resourcesPath;
public static String getFilePath(HttpServletRequest request) {
if(resourcesPath == null) {
String serverpath=request.getSession().getServletContext().getRealPath("");
resourcesPath = serverpath + "/WEB-INF/classes/";
}
return resourcesPath;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要适当的解决方案来消除声纳上的这个警告.
我正在使用SonarQube进行代码质量控制,然后突然构建,否则将无法分析和失败.
[INFO] [00:00:03.630]分析/mySuperProject/target/jacoco.exec - > java.io.IOException:不兼容的版本1007
当我使用调试开关调用maven构建时,会显示此原因
Caused by: java.io.IOException: Incompatible version 1007.
at org.jacoco.core.data.ExecutionDataReader.readHeader(ExecutionDataReader.java:127)
at org.jacoco.core.data.ExecutionDataReader.readBlock(ExecutionDataReader.java:107)
at org.jacoco.core.data.ExecutionDataReader.read(ExecutionDataReader.java:87)
at org.sonar.plugins.jacoco.AbstractAnalyzer.readExecutionData(AbstractAnalyzer.java:134)
at org.sonar.plugins.jacoco.AbstractAnalyzer.analyse(AbstractAnalyzer.java:107)
Run Code Online (Sandbox Code Playgroud)
在检查jacoco ExecutionDataReader时,我发现异常被抛出
if (version != ExecutionDataWriter.FORMAT_VERSION) {
throw new IOException(format("Incompatible version %x.",Integer.valueOf(version)));
}
Run Code Online (Sandbox Code Playgroud)
从ExecutionDataWriter我发现了
/** File format version, will be incremented for each incompatible change. */
public static final char FORMAT_VERSION = 0x1007;
Run Code Online (Sandbox Code Playgroud)
这种不相容的变化是什么?它为什么会发生?任何想法如何解决这一挑战?
我正在使用Sonar使我的代码更清洁,它指出我正在使用new Integer(1)
而不是Integer.valueOf(1)
.因为它似乎valueOf
没有实例化一个新对象所以更加内存友好.怎么valueOf
不能实例化一个新对象?它是如何工作的?对所有整数都是如此吗?
我们组织中的人正在尝试实施源代码质量管理工具.SonarQube是我们遇到的一个这样的工具,它充满了各种功能并且非常出色.在实际实现之前,我们希望将它与同行进行比较(如果有的话).
Sonar的功能和功能是否有很好的竞争者?
sonarQube究竟与SonarLint有什么不同?SonarQube有一个与之关联的服务器,Sonar lint更像是一个插件.但他们的具体区别是什么?
sonarqube ×10
java ×3
findbugs ×2
jacoco ×2
checkstyle ×1
constructor ×1
jenkins ×1
maven ×1
pmd ×1
sonar-runner ×1
sonarlint ×1