SonarJava 5.12 發布

開源小編 6年前發布 | 6K 次閱讀

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

 本文由用戶 開源小編 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!