SonarJava 5.12 发布

openeditor 5年前

SonarSource团队很高兴地宣布推出SonarJava 5.12,其中包括: Java 12源文件扫描 JaCoCo二进制格式支持(.exec文件)的弃用,支持XML格式 ## JAVA 12支持 Java 12增加了对switch表达式的支持(激活thru --enable-preview),它提供了更简洁,更不易出错的“switch”版本。 以下是Java 12之前的“switch”语句示例: void day_of_week(DoW day) { int numLetters; switch (day) { case MONDAY: case FRIDAY: case SUNDAY: numLetters = 6; break; case TUESDAY: numLetters = 7; break; case THURSDAY: case SATURDAY: numLetters = 8; break; case WEDNESDAY: numLetters = 9; break; default: throw new IllegalStateException("Wat: " + day); } } 下面是如何用Java 12重写它: int numLetters = switch (day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; }; 如果您已准备好开始使用此新switch,我们添加了一条专用规则来帮助您: S5194 - 使用Java 12“switch”表达式(Code Smell) ## 再见 JACOCO .EXEC格式 从SonarQube开始,SonarJava支持JaCoCo生成的二进制格式,称为.exec文件。 依赖于这种内部二进制格式有点痛苦,因为每个微小的格式变化都会影响我们。 由于SonarQube支持JaCoCo生成的XML输出,因此是时候转向它了。 不推荐使用sonar.jacoco.reportPaths属性,将在2019年晚些时候删除。我们鼓励所有JaCoCo用户使用XML输出格式而不是二进制格式。 如果您仍然依赖sonar.jacoco.reportPaths,您将在项目页面中收到警告。 ## Maven用户的迁移路径 如果您还没有,我们建议您在SonarQube实例中安装JaCoCo插件。 从pom.xml文件中删除任何“sonar.jacoco.itReportPath”或“sonar.jacoco.reportPath”或“sonar.jacoco.reportMissing.force.zero”。 添加“sonar.coverage.jacoco.xmlReportPaths”,列出构建生成JaCoCo xml文件的所有位置,以防您不依赖于默认位置:“target / site / jacoco”。 使用“jacoco-maven-plugin”Maven插件及其“报告”任务:https://www.eclemma.org/jacoco/trunk/doc/report-mojo.html mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent org.jacoco:jacoco-maven-plugin:report install -Dmaven.test.failure.ignore=false ## CUSTOM RULES API更新 我们在自定义规则API中进行了一些清理,以删除多年来弃用的API。 请在此处查看详细信息:https://docs.sonarqube.org/display/PLUG/Custom+Rules+for+Java 此外,此版本包含许多改进。 有关更多信息,请阅读发行说明。 您可以通过Marketplace安装或更新它。 对SonarJava感兴趣? 请参阅产品页面或阅读插件的文档