SonarJava 5.12 發布
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感興趣? 請參閱產品頁面或閱讀插件的文檔。