{"id":18141402,"url":"https://github.com/monosoul/gradle-module-tree","last_synced_at":"2026-05-02T06:39:45.603Z","repository":{"id":258263122,"uuid":"866917352","full_name":"monosoul/gradle-module-tree","owner":"monosoul","description":"Gradle plugin providing functions for declaring modules as a tree","archived":false,"fork":false,"pushed_at":"2024-10-16T14:21:57.000Z","size":63,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T00:28:45.621Z","etag":null,"topics":["gradle","gradle-kotlin-dsl","gradle-plugin","module","modules","project","projects","settings"],"latest_commit_sha":null,"homepage":"https://plugins.gradle.org/plugin/dev.monosoul.module-tree","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/monosoul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2024-10-03T05:49:24.000Z","updated_at":"2024-10-17T11:44:19.000Z","dependencies_parsed_at":"2024-10-18T07:27:53.772Z","dependency_job_id":null,"html_url":"https://github.com/monosoul/gradle-module-tree","commit_stats":null,"previous_names":["monosoul/gradle-module-tree"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosoul%2Fgradle-module-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosoul%2Fgradle-module-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosoul%2Fgradle-module-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosoul%2Fgradle-module-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monosoul","download_url":"https://codeload.github.com/monosoul/gradle-module-tree/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247528783,"owners_count":20953485,"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":["gradle","gradle-kotlin-dsl","gradle-plugin","module","modules","project","projects","settings"],"created_at":"2024-11-01T17:06:45.058Z","updated_at":"2026-05-02T06:39:40.582Z","avatar_url":"https://github.com/monosoul.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradle module tree plugin\n\n[![Build Status](https://github.com/monosoul/gradle-module-tree/actions/workflows/build-on-push-to-main.yml/badge.svg?branch=main)](https://github.com/monosoul/gradle-module-tree/actions/workflows/build-on-push-to-main.yml?query=branch%3Amain)\n[![codecov](https://codecov.io/gh/monosoul/gradle-module-tree/graph/badge.svg?token=AQu3Ntq1z3)](https://codecov.io/gh/monosoul/gradle-module-tree)\n[![Gradle Plugins Release](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Fdev%2Fmonosoul%2Fmodule-tree%2Fdev.monosoul.module-tree.gradle.plugin%2Fmaven-metadata.xml\u0026label=Gradle%20Plugin%20Portal)](https://plugins.gradle.org/plugin/dev.monosoul.module-tree)\n[![Maven metadata URL](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Fdev%2Fmonosoul%2Fmodule-tree%2Fdev.monosoul.module-tree.gradle.plugin%2Fmaven-metadata.xml\u0026label=Maven%20Central)](https://mvnrepository.com/artifact/dev.monosoul.gradle.module.tree/gradle-module-tree)\n[![license](https://img.shields.io/github/license/monosoul/gradle-module-tree.svg)](LICENSE)\n[![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\n\nThis plugin provides an extensions function to declare Gradle modules as a tree.\n\nImagine having the following module structure:\n\n```kotlin\ninclude(\"top-level-module\")\n\ninclude(\"top-level-module:second-level-module\")\ninclude(\"top-level-module:third-level-module\")\nproject(\"top-level-module:third-level-module\").projectDir = file(\"top-level-module/second-level-dir/third-level-module\")\n```\n\nThis declaration is hard to read and build a mental model for, especially if you want to have some modules to be in \nsubdirectories rather than submodules (to avoid creating unnecessary empty modules).\n\nHere's what the same declaration will look like using the function provided by the plugin:\n\n```kotlin\nimport dev.monosoul.gradle.module.tree.includeTree\n\nincludeTree {\n    module(\"top-level-module\") {\n        module(\"second-level-module\")\n        dir(\"second-level-dir\") {\n            module(\"third-level-module\")\n        }\n    }\n}\n```\n\nThis declaration is much easier to read, and it offers a nice visual representation of the modules structure.\n\nIt will also automatically create directory structure and empty `build.gradle.kts` files for every module.\n\n\n## Getting Started\n\nTo apply the plugin simply add it to the plugins block of your `settings.gradle.kts`:\n\n```kotlin\nplugins {\n    id(\"dev.monosoul.module-tree\") version \"0.0.2\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonosoul%2Fgradle-module-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonosoul%2Fgradle-module-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonosoul%2Fgradle-module-tree/lists"}