{"id":676,"date":"2017-07-28T17:38:24","date_gmt":"2017-07-28T17:38:24","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2017\/07\/28\/know-about-sonarjava-is-it-replacement-for-checkstyle-pmd-findbugs\/"},"modified":"2021-11-18T10:21:41","modified_gmt":"2021-11-18T10:21:41","slug":"know-about-sonarjava-is-it-replacement-for-checkstyle-pmd-findbugs","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/know-about-sonarjava-is-it-replacement-for-checkstyle-pmd-findbugs\/","title":{"rendered":"What is SonarJava? Is it replacement for Checkstyle, PMD, FindBugs?"},"content":{"rendered":"<div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2850 aligncenter\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2017\/07\/know-about-sonarjava.png\" alt=\"know-about-sonarjava\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2017\/07\/know-about-sonarjava.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2017\/07\/know-about-sonarjava-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>SonarJava has a great coverage of well-established quality standards. The SonarJava capability is available in Eclipse and IntelliJ for developers (SonarLint) as well as throughout the development chain for automated code review with on-premise SonarQube or on-line SonarCloud.<\/p>\n<\/div>\n<div><\/div>\n<div>SonarJava is a code analyzer for Java projects. Information about the SonarJava features is available below;<\/div>\n<div><\/div>\n<div><strong>Why SonarJava?<\/strong><\/div>\n<div>SonarQube is currently on the way to deprecate PMD, Checkstyle and Findbugs and use their own technology to analyze Java code (called SonarJava). They do it, because they don&#8217;t want to spend their time fixing, upgrading (or waiting on it) those libraries (e.g. for Java 8), which for example uses outdated libraries. Well at least since SonarQube 6.3+ it seems to be that Findbugs is (at the moment) no longer supported as a plugin.<\/div>\n<div><\/div>\n<div><strong><br>\nFeatures<\/strong><\/div>\n<div>409+ rules (including 103+ bug detection, 273 Code Smells, 33 Vulerabilities)<\/div>\n<div>Metrics (complexity, number of lines etc.)<\/div>\n<div>Import of test coverage reports<\/div>\n<div>Custom rules<\/div>\n<div><\/div>\n<div><strong>SonarJava is being used in the following&#8230;<\/strong><\/div>\n<div>SonarQube<\/div>\n<div>SonarCloud<\/div>\n<div>SonarLint for Eclipse<\/div>\n<div>SonarLint for Intellij IDEA<\/div>\n<div><\/div>\n<div><strong>Supported versions, frameworks and special analyses&#8230;<\/strong><\/div>\n<div>Java language versions through 8<\/div>\n<div>Frameworks Struts, Spring, Hibernate<\/div>\n<div>Native integration with Maven, Gradle, and Ant<\/div>\n<div><\/div>\n<div><strong>Metrics<\/strong><\/div>\n<div>Code Coverage by Tests: SonarJava supports the import of JaCoCo and Cobertura test coverage reports.<\/div>\n<div><\/div>\n<div><strong>Custom Rules<\/strong><\/div>\n<div>SonarJava supports custom rules written in Java.<\/div>\n<div><\/div>\n<div><strong>Reference<\/strong><\/div>\n<div><a href=\"https:\/\/github.com\/SonarSource\/sonar-java\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/SonarSource\/sonar-java<\/a><\/div>\n<div><a href=\"https:\/\/www.sonarsource.com\/products\/codeanalyzers\/sonarjava.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.sonarsource.com\/products\/codeanalyzers\/sonarjava.html<\/a><\/div>\n<div><a href=\"https:\/\/docs.sonarqube.org\/display\/PLUG\/SonarJava\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.sonarqube.org\/display\/PLUG\/SonarJava<\/a><\/div>\n<div><\/div>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_81641\"><iframe loading=\"lazy\"  id=\"_ytid_33674\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_81641\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<div>\n<div>\n<div><strong>Know About SonarJava! Is it replacement for Checkstyle, PMD, FindBugs?<\/strong><\/div>\n<\/p><\/div>\n<p> SonarJava has a great coverage of well-established quality standards. The SonarJava capability is available in Eclipse and IntelliJ for developers (SonarLint) as well as throughout the development chain for automated code review with on-premise SonarQube or on-line SonarCloud.<\/p><\/div>\n<div>\u00a0<\/div>\n<div>SonarJava is a code analyzer for Java projects. Information about the SonarJava features is available below;<\/div>\n<div>\u00a0<\/div>\n<div><strong>Why SonarJava?<\/strong><\/div>\n<div>SonarQube is currently on the way to deprecate PMD, Checkstyle and Findbugs and use their own technology to analyze Java code (called SonarJava). They do it, because they don&#8217;t want to spend their time fixing, upgrading (or waiting on it) those libraries (e.g. for Java 8), which for example uses outdated libraries. Well at least since SonarQube 6.3+ it seems to be that Findbugs is (at the moment) no longer supported as a plugin.<\/div>\n<div>\u00a0<\/div>\n<div>\n","protected":false},"author":1,"featured_media":2850,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[158],"tags":[626,526,609,610,608,607,606,581],"class_list":["post-676","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sonarqube","tag-alternatives","tag-checkstyle","tag-code-analyzer","tag-code-coverage","tag-findbugs","tag-pmd","tag-sonarjava","tag-sonarqube"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=676"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/676\/revisions"}],"predecessor-version":[{"id":25753,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/676\/revisions\/25753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/2850"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}