SonarQube Java 3.3 发布,此版本增加了一个永远不会被锁定的检测锁和新增了10个新规则,并修复了大量 Bug。更新内容如下; Sub-task: [SONARJAVA-1062] - Remove usage of ASTNode in SynchronizedClassUsageCheck and Fix check [SONARJAVA-1065] - Remove usage of ASTNode in EmptyMehtodsCheck [SONARJAVA-1066] - Remove usage of ASTNode in EmptyStatementUsageCheck [SONARJAVA-1070] - Remove usage of ASTNode in TooManyStatementsPerLine_S00122_Check Bug 修复 [SONARJAVA-595] - Parsing error: Empty statement in import [SONARJAVA-839] - ClassVariableVisibilityCheck: final fields should not raise an issue. [SONARJAVA-916] - FP S1147 : System.exit should not raise issue when called within a main method [SONARJAVA-967] - FP on S2230: methods from interfaces raise issues when the public modifier is not present [SONARJAVA-1005] - FP on S1994: "for" loop incrementers should modify the variable being tested in the loop's stop condition [SONARJAVA-1025] - Nested enum "enum" should be implicitly marked "static" in semantic [SONARJAVA-1028] - Deprecate rules S1294 and S1318 [SONARJAVA-1042] - Rule ForLoopCounterChangedCheck does not match its description [SONARJAVA-1055] - FP S1155 should raise issue only for Collections [SONARJAVA-1061] - FP on S1948: no issue should be raised when using Collections of Serializable objects [SONARJAVA-1064] - FP on S2095: Resources should be closed [SONARJAVA-1067] - NPE on S2186 when symbol is unknown as its owner is set to null 性能提升: [SONARJAVA-618] - Make line numbers of SyntaxToken available [SONARJAVA-1017] - Rule: S2159 Silly equality checks should not be made [SONARJAVA-1034] - Rule: S2692 "indexOf" checks should not be for positive numbers [SONARJAVA-1035] - Rule: S2693 Threads should not be started in constructors [SONARJAVA-1036] - Rule: S2675 "readObject" should not be "synchronized" [SONARJAVA-1040] - Improve Rule: S864 Report issues only once per line 新特征: [SONARJAVA-1030] - Rule: S2222 Locks should be released [SONARJAVA-1037] - Rule: S1858 "toString()" should never be called on a String object [SONARJAVA-1041] - Rules S2864 : "entrySet()" should be iterated when both the key and value are needed [SONARJAVA-1047] - Rule: S2676 "Math.abs" and negation should not be used on numbers that could be "MIN_VALUE" [SONARJAVA-1050] - Rule: S2097 "equals(Object obj)" should test argument type [SONARJAVA-1053] - Rule S2185: Silly math should not be performed [SONARJAVA-1054] - Rule: S2885 "Calendars" and "DateFormats" should not be static 更多内容请看发行页面。 Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。 SonarQube Java 3.3 发布下载地址