{"id":13473045,"url":"https://github.com/novoda/gradle-static-analysis-plugin","last_synced_at":"2025-03-26T17:31:47.160Z","repository":{"id":44175266,"uuid":"73275282","full_name":"novoda/gradle-static-analysis-plugin","owner":"novoda","description":"Easy setup of static analysis tools for Android and Java projects.","archived":true,"fork":false,"pushed_at":"2022-02-11T05:57:36.000Z","size":1661,"stargazers_count":405,"open_issues_count":0,"forks_count":28,"subscribers_count":34,"default_branch":"master","last_synced_at":"2024-08-01T16:32:04.361Z","etag":null,"topics":["android-lint","checkstyle","code-quality","detekt","findbugs","gradle","gradle-plugin","novoda","open-source","pmd"],"latest_commit_sha":null,"homepage":"","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novoda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-09T10:46:59.000Z","updated_at":"2024-07-03T18:24:04.000Z","dependencies_parsed_at":"2022-07-22T00:30:02.893Z","dependency_job_id":null,"html_url":"https://github.com/novoda/gradle-static-analysis-plugin","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fgradle-static-analysis-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fgradle-static-analysis-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fgradle-static-analysis-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novoda%2Fgradle-static-analysis-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novoda","download_url":"https://codeload.github.com/novoda/gradle-static-analysis-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222156562,"owners_count":16940436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-lint","checkstyle","code-quality","detekt","findbugs","gradle","gradle-plugin","novoda","open-source","pmd"],"created_at":"2024-07-31T16:01:00.229Z","updated_at":"2024-10-30T03:31:33.134Z","avatar_url":"https://github.com/novoda.png","language":"Groovy","funding_links":[],"categories":["Android","Инструменты анализа"],"sub_categories":["Tools"],"readme":"# [DEPRECATED] Gradle static analysis plugin\n\n\u003e :warning: A fork of this project is maintained at https://github.com/GradleUp/static-analysis-plugin/\n\u003e Please migrate by using `com.gradleup.static-analysis` plugin id instead.\n\n[![](https://ci.novoda.com/buildStatus/icon?job=gradle-static-analysis-plugin)](https://ci.novoda.com/job/gradle-static-analysis-plugin/lastSuccessfulBuild) [![](https://img.shields.io/badge/License-Apache%202.0-lightgrey.svg)](LICENSE.txt) [![Bintray](https://api.bintray.com/packages/novoda-oss/maven/gradle-static-analysis-plugin/images/download.svg)](https://bintray.com/novoda-oss/maven/gradle-static-analysis-plugin/_latestVersion)\n\nA Gradle plugin to easily apply the same setup of static analysis tools across different Android, Java or Kotlin projects.\n\nSupports [Task Configuration Avoidance](https://docs.gradle.org/current/userguide/task_configuration_avoidance.html) so that you have zero overhead in build speeds when you use this plugin!\n\n## Description\nGradle supports many popular static analysis (Checkstyle, PMD, FindBugs, etc) via a set of built-in plugins.\nUsing these plugins in an Android module will require an additional setup to compensate for the differences between\nthe model adopted by the Android plugin compared to the the Java one.\n\nThe `gradle-static-analysis-plugin` aims to provide:\n- flexible, configurable penalty strategy for builds\n- easy, Android-friendly integration for all static analysis\n- convenient way of sharing same setup across different projects\n- healthy, versionable and configurable defaults\n\n### Supported tools\nThe plugin supports various static analysis tools for Java, Kotlin and Android projects:\n\n * [`Checkstyle`](docs/tools/checkstyle.md)\n * [`PMD`](docs/tools/pmd.md)\n * [`FindBugs`](docs/tools/findbugs.md) [DEPRECATED] [Removed in Gradle 6.0]\n * [`SpotBugs`](docs/tools/spotbugs.md)\n * [`Detekt`](docs/tools/detekt.md)\n * [`Android Lint`](docs/tools/android_lint.md)\n * [`KtLint`](docs/tools/ktlint.md)\n \nPlease note that the tools availability depends on the project the plugin is applied to. For more details please refer to the\n[supported tools](docs/supported-tools.md) page.\n\n### Tools in-consideration\n                          \n * `CPD (Duplicate Code Detection) ` [#150](https://github.com/novoda/gradle-static-analysis-plugin/issues/150)\n * `error-prone` [#151](https://github.com/novoda/gradle-static-analysis-plugin/issues/151)\n * `Jetbrains IDEA Inspections` [#152](https://github.com/novoda/gradle-static-analysis-plugin/issues/152)\n\nFor all tools in consideration, please refer to [issues](https://github.com/novoda/gradle-static-analysis-plugin/issues?q=is%3Aissue+is%3Aopen+label%3A%22new+tool%22). \n\n### Out-of-the-box support for Android projects\nAndroid projects use a Gradle model that is not compatible with the Java one, supported by the built-in static analysis tools plugins.\nApplying `gradle-static-analysis-plugin` to your Android project will make sure all the necessary tasks are created and correctly configured\nwithout any additional hassle.\n\n## Add the plugin to your project\nApply the plugin from jCenter as a classpath dependency\n\n```gradle\nbuildscript {\n    repositories {\n       jcenter()\n    }\n    dependencies {\n        classpath 'com.novoda:gradle-static-analysis-plugin:1.2'\n    }\n}\n\napply plugin: 'com.novoda.static-analysis'\n```\n        \nor from the [Gradle Plugins Repository](https://plugins.gradle.org/):\n\n```gradle\nplugins {\n    id 'com.novoda.static-analysis' version '1.2'\n}\n\n```\n\n## Simple usage\nA typical configuration for the plugin will look like:\n\n```gradle\nstaticAnalysis {\n    penalty {\n        maxErrors = 0\n        maxWarnings = 0\n    }\n    checkstyle { }\n    pmd { }\n    findbugs { }\n    spotbugs { }\n    detekt { }\n    lintOptions { }\n}\n```\n\nThis will enable all the tools with their default settings and create `evaluateViolations` task. Running `./gradlew evaluateViolations` task will run all configured tools and print the reports to console. For more advanced configurations, please refer to the\n[advanced usage](docs/advanced-usage.md) and to the [supported tools](docs/supported-tools.md) pages.\n\n## Sample app\nThere are two sample Android projects available, one consisting of a regular app - available [here](https://github.com/novoda/gradle-static-analysis-plugin/tree/master/sample) - and the other comprising a multi-module setup available [here](https://github.com/novoda/gradle-static-analysis-plugin/tree/master/sample-multi-module). Both sample projects showcase a setup featuring Checkstyle, FindBugs, SpotBugs, PMD, Lint, Ktlint and Detekt.\n\n## Snapshots\n[![CI status](https://ci.novoda.com/buildStatus/icon?job=gradle-static-analysis-plugin-snapshot)](https://ci.novoda.com/job/gradle-static-analysis-plugin-snapshot/lastBuild/console) [![Download from Bintray](https://api.bintray.com/packages/novoda-oss/snapshots/gradle-static-analysis-plugin/images/download.svg)](https://bintray.com/novoda-oss/snapshots/gradle-static-analysis-plugin/_latestVersion)\n\nSnapshot builds from [`develop`](https://github.com/novoda/gradle-static-analysis-plugin/compare/master...develop) are automatically deployed to a [repository](https://bintray.com/novoda-oss/snapshots/gradle-static-analysis-plugin/_latestVersion) that is not synced with JCenter.\nTo consume a snapshot build add an additional maven repo as follows:\n```\nrepositories {\n    maven {\n        url 'https://dl.bintray.com/novoda-oss/snapshots/'\n    }\n}\n```\n\nYou can find the latest snapshot version following this [link](https://bintray.com/novoda-oss/snapshots/gradle-static-analysis-plugin/_latestVersion).\n\n## Roadmap\n\nThis project is routinely used by many Novoda projects and by other external projects with no known critical issues.\n\nFuture improvements and new tool integrations can be found on the repository's\n[issue tracker](https://github.com/novoda/gradle-static-analysis-plugin/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovoda%2Fgradle-static-analysis-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovoda%2Fgradle-static-analysis-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovoda%2Fgradle-static-analysis-plugin/lists"}