{"id":15040758,"url":"https://github.com/android/gradle-declarative","last_synced_at":"2025-10-19T19:30:20.792Z","repository":{"id":182889198,"uuid":"666193927","full_name":"android/gradle-declarative","owner":"android","description":null,"archived":true,"fork":false,"pushed_at":"2023-10-20T18:07:01.000Z","size":236,"stargazers_count":24,"open_issues_count":0,"forks_count":9,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-01-31T10:41:36.097Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/android.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-14T00:03:30.000Z","updated_at":"2024-11-11T21:31:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"e69af935-18b0-4314-83cb-fcf27296965b","html_url":"https://github.com/android/gradle-declarative","commit_stats":null,"previous_names":["android/gradle-declarative"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/android%2Fgradle-declarative","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/android%2Fgradle-declarative/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/android%2Fgradle-declarative/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/android%2Fgradle-declarative/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/android","download_url":"https://codeload.github.com/android/gradle-declarative/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237200560,"owners_count":19271172,"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-09-24T20:45:01.577Z","updated_at":"2025-10-19T19:30:20.379Z","avatar_url":"https://github.com/android.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Declarative Plugin\n\n## Building\n\nTo build the agp-experimental/declarative, you need to also have Android Studio codebase checked out\nand pointed to by the AGP_WORKSPACE_LOCATION environment variable. It is needed to access some of the testing\ninfrastructure like accessing SDK, NDK and services like exploring APKs, AARs, etc...\nYou also need to have the CUSTOM_REPO environment variable set. \n\nSo for example this is what I use on my mac\n```\nAGP_WORKSPACE_LOCATION=/Users/jedo/src/studio-main\nCUSTOM_REPO=$AGP_WORKSPACE_LOCATION/out/repo:$AGP_WORKSPACE_LOCATION/prebuilts/tools/common/m2/repository\n```\n\nTo build : `gw publish`\n\n### Running tests\n\nTo run the test in Gradle : ```gw tests:test``` or click on the Play in the gutter.\n\n### Design docs \n\nThere is a high level design doc available [here](go/gradle-declarative), a deeper design doc \nwill be written once the project is founded.\n\n### Code organization\n\nThere are 4 modules in the current workspace \n\n| module | content |\n|--------|---------|\n| buildSrc | convention plugins and Constants used to build the project |\n| api | public APIs of the plugin |\n| impl | implementation of the plugins | \n| tests | integration tests |\n\nThere are 2 plugins, a `Project` one and a `Settings` one. The `Project` plugin has the core of \nthe declarative functionality : \n1. Reads the build.gradle.toml\n2. Applies the configured plugins \n3. Reflectively populate the extension objects\n4. Configure the dependencies/\n\nThe `Settings` plugin will do a similar job on the `Settings` object : \n1. Reads the settings.gradle.toml\n2. Configure the declarative plugins on each project \n3. Provide basic plugin management capability.\n\ncontact: `jedo@google.com` for questions.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroid%2Fgradle-declarative","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandroid%2Fgradle-declarative","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroid%2Fgradle-declarative/lists"}