在这种情况下是否有其他选择使用扩散算子? 或者我应该忽略这个警告?
我已经配置了一个Jenkins项目,在gradle构建和测试之后,调用以下规格的“Execute SonarQube Scanner”: sonar.projectKey=my_project_key sonar.projectName=my_Android sonar.projectVersion=1.0 sonar.sources=app/src sonar.java.binaries=app/build/intermediates/classes/debug sonar.coverage.exclusions=app/src/test/**,app/src/androidTest/**,app/src/main/res/** 这成功地运行SonarQube,并生成一个IP地址:9000的报告,测量:错误,漏洞,债务,代码嗅觉,和复制就像它应该。 然而,这个报告没有定义测试覆盖的代码。 SonarQube正在成功运行Kotlin插件并查看代码库本身,但是没有确定覆盖范围。 在使用Kotlin Android时,是否可以使用SonarQube来收集这些信息? 我确实尝试安装Jacoco,但在SonarQube结果中没有看到任何新的数据。
我一直在试图为Sonarqube〜5.4编写一个自定义规则插件,虽然我已经实现了一些实现和工作的规则,但依赖于标准库之外的类型的规则依赖于各种杂技字符串匹配。 我正在使用sonar-packaging-maven-plugin来做包装: <plugin> <groupId>org.sonarsource.sonar-packaging-maven-plugin</groupId> <artifactId>sonar-packaging-maven-plugin</artifactId> <version>1.16</version> <configuration> <pluginClass>${project.groupId}.sonar.BravuraRulesPlugin</pluginClass> <pluginKey>SonarPluginBravura</pluginKey> <skipDependenciesPackaging>false</skipDependenciesPackaging> <basePlugin>java</basePlugin> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>sonar-plugin</goal> </goals> </execution> </executions> </plugin> 并且使用下面的助手扩展(kotlin)运行各种检查: fun <T : JavaFileScanner> T.verify() { val workDir = System.getProperty("user.dir"); val folder = Paths.get(workDir, "src/test/samples", this.javaClass.simpleName); Files.list(folder).forEach { sample -> try { if (sample.toString().endsWith(".clean.java")) { JavaCheckVerifier.verifyNoIssue(sample.toString(), this); } else { JavaCheckVerifier.verify(sample.toString(), this); } […]
我想使用SonarQube 6.3.1来分析Android项目的Java和Kotlin代码。 因此,除了预装的SonarJava aka之外,我还安装了Android Lint插件。 声纳方式插件。 两者都显示在项目的“ 管理”部分的Java语言下拉列表中,如截图所示。 我怎样才能同时应用多个配置文件? 我在哪里可以找到适合Java / Kotlin / Android项目的其他配置文件? 相关文章 Sonarqube:为单个多语言项目使用多个自定义质量配置文件…?
Heyho, 我有我的声纳kotlin插件运行。 我的RuleDefinitions在规则页面显示,但是当分析一些kotlin项目时,找到的问题不会被保存。 我的传感器问题添加代码如下所示: private fun projectIssues(detektion: Detektion, context: SensorContext) { val fileSystem = context.fileSystem() val baseDir = fileSystem.baseDir() val predicates = fileSystem.predicates() detektion.findings.forEach { _, findings -> findings.forEach { issue -> val inputFile = fileSystem.inputFile(predicates.`is`(baseDir.resolve(issue.location.file))) if (inputFile != null) { val newIssue = context.newIssue() .forRule(findKey(issue.id)) .gap(2.0) // TODO what to write here? .primaryLocation(issue, inputFile) […]