{"id":50314450,"url":"https://github.com/autonomousapps/composite-build-gradle-lifecycle","last_synced_at":"2026-05-28T23:01:58.514Z","repository":{"id":360046469,"uuid":"1144851578","full_name":"autonomousapps/composite-build-gradle-lifecycle","owner":"autonomousapps","description":"A demonstration of the only possible (?) way to use the gradle.lifecycle hook from a convention plugin provided by an included build","archived":false,"fork":false,"pushed_at":"2026-01-29T06:02:48.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T19:34:22.040Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autonomousapps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-29T05:48:53.000Z","updated_at":"2026-01-29T06:02:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/autonomousapps/composite-build-gradle-lifecycle","commit_stats":null,"previous_names":["autonomousapps/composite-build-gradle-lifecycle"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/autonomousapps/composite-build-gradle-lifecycle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousapps%2Fcomposite-build-gradle-lifecycle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousapps%2Fcomposite-build-gradle-lifecycle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousapps%2Fcomposite-build-gradle-lifecycle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousapps%2Fcomposite-build-gradle-lifecycle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autonomousapps","download_url":"https://codeload.github.com/autonomousapps/composite-build-gradle-lifecycle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousapps%2Fcomposite-build-gradle-lifecycle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33629560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2026-05-28T23:01:48.329Z","updated_at":"2026-05-28T23:01:58.473Z","avatar_url":"https://github.com/autonomousapps.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Composite builds and the `gradle.lifecycle` API\n\nhttps://docs.gradle.org/current/userguide/isolated_projects.html#new_gradle_lifecycle_callbacks\n\nhttps://github.com/gradle/gradle/issues/36461\n\nIt doesn't seem possible to reference a plugin provided by an included build (`build-logic`) in the main build's \n`gradle.lifecycle.beforeProject` callback. I've tried with both of the following:\n\n```kotlin\n// main build's settings.gradle.kts\n// (1)\npluginManagement {\n  includeBuild(\"build-logic\")\n}\n\n// (2)\nincludeBuild(\"build-logic\")\n\n// (3)\ngradle.lifecycle.beforeProject {\n  pluginManager.apply(\"buildlogic.my-cool-convention\")\n}\n```\n\nNo combination of (1) and (2) make (3) possible. The build-logic plugin simply isn't visible on the classpath, for\ninscrutable reasons. Not trying to be cute with that; as far as I know, Gradle's class loading is undocumented, although\nI made a partial attempt with the series beginning with \n[Build, compile, run: A crash course in classpaths](https://dev.to/autonomousapps/build-compile-run-a-crash-course-in-classpaths-f4g).\n\n**However, the following does work:**\n\n```kotlin\n// main build's settings.gradle.kts\npluginManagement {\n  includeBuild(\"build-logic\")\n}\n\nplugins {\n  id(\"buildlogic.my-cool-settings-convention\")\n}\n```\n\nand\n\n```kotlin\n// build-logic/src/main/kotlin/buildlogic.my-cool-settings-convention.settings.gradle.kts\ngradle.lifecycle.beforeProject {\n  pluginManager.apply(\"buildlogic.my-cool-convention\")\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousapps%2Fcomposite-build-gradle-lifecycle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautonomousapps%2Fcomposite-build-gradle-lifecycle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousapps%2Fcomposite-build-gradle-lifecycle/lists"}