{"id":13428533,"url":"https://github.com/vanniktech/gradle-dependency-graph-generator-plugin","last_synced_at":"2025-05-14T07:10:35.320Z","repository":{"id":37430806,"uuid":"123641451","full_name":"vanniktech/gradle-dependency-graph-generator-plugin","owner":"vanniktech","description":"Gradle plugin that generates dependency graphs from your project.","archived":false,"fork":false,"pushed_at":"2025-05-13T13:30:46.000Z","size":1105,"stargazers_count":1583,"open_issues_count":20,"forks_count":101,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-05-13T14:52:17.453Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://vanniktech.com","language":"Kotlin","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/vanniktech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["vanniktech"]}},"created_at":"2018-03-02T23:26:09.000Z","updated_at":"2025-05-12T20:46:13.000Z","dependencies_parsed_at":"2023-02-17T20:15:43.039Z","dependency_job_id":"e4a81567-fc60-428e-9ca0-52f94c172ea2","html_url":"https://github.com/vanniktech/gradle-dependency-graph-generator-plugin","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2Fgradle-dependency-graph-generator-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2Fgradle-dependency-graph-generator-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2Fgradle-dependency-graph-generator-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2Fgradle-dependency-graph-generator-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vanniktech","download_url":"https://codeload.github.com/vanniktech/gradle-dependency-graph-generator-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092797,"owners_count":22013291,"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":[],"created_at":"2024-07-31T01:00:59.789Z","updated_at":"2025-05-14T07:10:30.291Z","avatar_url":"https://github.com/vanniktech.png","language":"Kotlin","funding_links":["https://github.com/sponsors/vanniktech"],"categories":["Libraries","Kotlin"],"sub_categories":[],"readme":"# gradle-dependency-graph-generator-plugin\n\nGradle plugin that lets you visualize your dependencies in a graph.\n\n# Set up\n\n[Gradle 3.3](https://docs.gradle.org/3.3/release-notes.html) or higher is required.\n\n```gradle\nbuildscript {\n  repositories {\n    mavenCentral()\n  }\n  dependencies {\n    classpath \"com.vanniktech:gradle-dependency-graph-generator-plugin:0.8.0\"\n  }\n}\n\napply plugin: \"com.vanniktech.dependency.graph.generator\"\n```\n\nNote that this plugin can be applied at the root of the project or at a specific project. Both cases will just work.\n\n### Snapshot\n\n```gradle\nbuildscript {\n  repositories {\n    maven { url \"https://oss.sonatype.org/content/repositories/snapshots\" }\n  }\n  dependencies {\n    classpath \"com.vanniktech:gradle-dependency-graph-generator-plugin:0.9.0-SNAPSHOT\"\n  }\n}\n\napply plugin: \"com.vanniktech.dependency.graph.generator\"\n```\n\n## Usage\n\nBy default, this plugin provides two reporting tasks:\n\n| `generateDependencyGraph`                                                       | `generateProjectDependencyGraph`                                                                     |\n|:--------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------|\n| ![Dependency Graph](art/dependency-graph.svg)                                   | ![Project Dependency Graph](art/project-dependency-graph.svg)                                        |\n| Generates a **complete** dependency graph in `build/reports/dependency-graph/`  | Generates a dependency graph of the **project modules** in `build/reports/project-dependency-graph/` |\n\n_Source project: [vanniktech/Emoji](https://github.com/vanniktech/Emoji)_\n\nThe graphs are generated in `.png`, `.svg` \u0026 `.dot` format.\n\nThere are extension points to be able to generate graphs which only include some dependencies and their transitive ones. The trick is to hook a [Generator](./src/main/kotlin/com/vanniktech/dependency/graph/generator/DependencyGraphGeneratorExtension.kt) in over the `dependencyGraphGenerator` extension. Note that this is extremely experimental and will likely change between releases. It's still fun though.\n\n### Generator Example\n\nWe only want to show which Jetbrains libraries we're using.\n\n```groovy\nimport com.vanniktech.dependency.graph.generator.DependencyGraphGeneratorPlugin\nimport guru.nidi.graphviz.attribute.Color\nimport guru.nidi.graphviz.attribute.Style\n\nplugins.apply(DependencyGraphGeneratorPlugin)\n\ndependencyGraphGenerator {\n  generators {\n    jetbrainsLibraries {\n      include = { dependency -\u003e dependency.getModuleGroup().startsWith(\"org.jetbrains\") } // Only want Jetbrains.\n      children = { true } // Include transitive dependencies.\n      dependencyNode = { node, dependency -\u003e node.add(Style.FILLED, Color.rgb(\"#AF1DF5\")) } // Give them some color.\n    }\n  }\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eThe same can be done using Kotlin\u003c/summary\u003e\n\n```kotlin\nimport com.vanniktech.dependency.graph.generator.DependencyGraphGeneratorExtension\nimport com.vanniktech.dependency.graph.generator.DependencyGraphGeneratorPlugin\nimport guru.nidi.graphviz.attribute.Color\nimport guru.nidi.graphviz.attribute.Style\n\nplugins.apply(DependencyGraphGeneratorPlugin::class.java)\n\nconfigure\u003cDependencyGraphGeneratorExtension\u003e {\n  generators.create(\"jetbrainsLibraries\") {\n    include = { dependency -\u003e dependency.moduleGroup.startsWith(\"org.jetbrains\") } // Only want Jetbrains.\n    children = { true } // Include transitive dependencies.\n    dependencyNode = { node, dependency -\u003e node.add(Style.FILLED, Color.rgb(\"#AF1DF5\")) } // Give them some color.\n  }\n}\n```\n\n\u003c/details\u003e\n\nThis will generate a new task `generateDependencyGraphJetbrainsLibraries` which when run will yield this graph:\n\n![Example Jetbrains graph](art/dependency-graph-jetbrains-libraries.svg)\n\n\n# License\n\nCopyright (C) 2018 Vanniktech - Niklas Baudy\n\nLicensed under the Apache License, Version 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanniktech%2Fgradle-dependency-graph-generator-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvanniktech%2Fgradle-dependency-graph-generator-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanniktech%2Fgradle-dependency-graph-generator-plugin/lists"}