Tag: sonarqube

Jacoco eclipse插件和SonarQube中的代码覆盖率百分比值不同

我有一个Java项目。 根据Jacoco eclipse插件(EclEmma Java Code Coverage 2.3.1.201405111647),该项目的代码覆盖率为22.3%。 我生成.exec报告并将其提供给SonarQube并使用声纳跑步者进行分析。 SonarQube的Web界面上显示的代码覆盖率为20.2%。 包级别的覆盖值也与Jacoco的eclipse插件所显示的不同。 怎么可能? SonarQube不是从Jacoco生成的.exec报告中获取值吗?

声纳想要关闭流

我有下一个代码: private Stream getStreamWithAccessibleFields(final Object object) { return Arrays.stream(object.getClass() .getDeclaredFields()).peek(field -> field.setAccessible(true)); } Sonar抛出一个问题: [MINOR]关闭这个“Stream”。 鱿鱼:S2095 。 任何人都可以提出建议,我该如何处理这个问题?

Sonarqube,“字符串不包含格式说明符”时记录常量字符串消息

SonarQube抱怨“ 字符串不包含格式说明符” 。 当使用org.slf4j.Logger ,特别是方法“ public void debug(String msg) ”。 例如 log.info(“message”); 它指的是这条规则: https : //wiki.sei.cmu.edu/confluence/display/c/FIO47-C.+Use+valid+format+strings 但是,在此规则中,我们可以找到以下引用: 每个转换规范由%字符引入(按顺序)by 零个或多个标志(以任何顺序),它们修改转换规范的含义 是我错过了什么,还是这个规则没有得到很好的实施? 有这方面的经验吗?

声纳违规:安全性 – 使用byte 时直接存储数组

我确实遇到了以下2个关于类似问题声纳违规和声纳违规的post但是,我的问题是使用byte[] 以下是我在Sonar中收到此警告的代码段 public void setValue(byte[] value) { this.value = value; } 我查看了解决方案并进行了以下更改 public void setValue(byte[] value) { if(value == null) { this.value = new byte[0]; } else { this.value= Arrays.copyOf(value, value.length); } } 即便如此,我在Sonar中收到了相同的安全违规警告。 我是否收到此警告,因为它是byte[]并且字节数组需要以不同方式处理?

无法将SonarQube从4.5.2升级到5.0

升级到SonarQube的最新主要版本(5.0)失败。 我们已遵循本指南http://docs.sonarqube.org/display/SONAR/Upgrading 。 如果我们尝试使用干净的数据库,一切正常,但这不是一个可接受的解决方案,因为我们需要所有历史记录。 浏览器出错: Impossible to upgrade database Migration failed: An error has occurred, all later migrations canceled: Fail to execute database migration: org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration . Please check logs. 系统信息: 操作系统:Linux / amd64 / 3.2.0-4-amd64 Java版本:1.7.0_21-b11 版本:4.5.2 数据库:MySQL 5.5.41-0 + wheezy1 数据库:URL jdbc:mysql:// localhost:3306 / sonar?useUnicode = true&characterEncoding = utf8&rewriteBatchedStatements = true&useConfigs = maxPerformance 数据库驱动程序:MySQL […]

java.lang.IllegalStateException:不是JSON对象

我正在尝试使用SonarQube Web API从SonarQube获得json响应。 在将JsonElement分配给JsonObject我收到此错误: java.lang.IllegalStateException: Not a JSON Object 这是我的Java类 @Controller public class SonarController { @Autowired JenkinsDataService jenkinsService; @Autowired SonarDataService sonarService; HttpEntity entity; @RequestMapping(value = { “/sonar” }) public void test(HttpServletRequest request, HttpServletResponse response,ModelMap model ) throws ServletException, IOException{ try{ String url= “http://sbstpvmlx818:9000/api/resources?metrics=coverage,sonar&depth=1&metrics=ncloc”; RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); entity […]

SonarQube Java版本用于validation代码

我怎么知道哪个版本的Java SonarQubevalidation代码? 它是JVM的版本吗? 那么如果我的项目基于不同的版本呢?

在java代码库中自动为所有if / else / for / while等添加花括号

我希望减少大型遗留Java代码库中声纳违规的数量,似乎“快速获胜”将更新所有这些条件语句以具有大括号。 这似乎是一件容易的事情,我不明白为什么它不容易自动化。 有没有人知道可以像这样执行批量操作的工具? 或者为什么做这样的事情可能是一个坏主意,然后我花时间自己写点什么? 如果我自己写一个什么是最好的工具? 理想情况下,这是一种Java语言感知的东西,所以我不必处理格式化案例等。 顺便说一句,这条规则是不可协商的,所以这确实是最好的方法。

Ncss类型计数违规

对于PMD提出的这种违规行为,我并不是很清楚。 基本上我有两个问题: 我该怎么做才能摆脱这种违规行为? 以下陈述是什么意思? 该类型的NCSS行数为944参数 minimum:类型NCSS计数报告阈值:默认值为1500。

如果超出Sonar阈值,我如何让Hudson / Jenkins失败?

我正在使用maven构建我的Java应用程序,Jenkins用于CI和Sonar用于指标。 目前我有一个构建作业,可以创建声纳报告。 (通过Jenkins中的构建后步骤触发。) 如果达到某些阈值,我想将此设置为失败,即任何主要或阻止程序违规或复杂程度超过1.7。 任何指导将不胜感激! – L.