{"id":16079391,"url":"https://github.com/deepmedia/Grease","last_synced_at":"2025-10-22T22:30:39.683Z","repository":{"id":99104352,"uuid":"285627279","full_name":"deepmedia/Grease","owner":"deepmedia","description":"Fat AARs for Android, to distribute multiple library modules in a single file with no dependencies, with relocation support.","archived":false,"fork":false,"pushed_at":"2024-11-05T20:40:17.000Z","size":242,"stargazers_count":85,"open_issues_count":5,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-07T01:12:48.055Z","etag":null,"topics":["aar","android","android-lib","android-library","android-library-management","android-studio","fat","fatjar","fatjar-generator","gradle","gradle-plugin"],"latest_commit_sha":null,"homepage":"","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/deepmedia.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":"2020-08-06T17:09:10.000Z","updated_at":"2025-02-05T12:57:08.000Z","dependencies_parsed_at":"2025-01-15T20:23:54.217Z","dependency_job_id":"e645be0d-bfeb-4daa-b3cb-5cdaa502be36","html_url":"https://github.com/deepmedia/Grease","commit_stats":{"total_commits":33,"total_committers":2,"mean_commits":16.5,"dds":0.3939393939393939,"last_synced_commit":"2a049f6ede64fb8b66d878200eaa5da4d393e77f"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepmedia%2FGrease","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepmedia%2FGrease/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepmedia%2FGrease/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepmedia%2FGrease/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepmedia","download_url":"https://codeload.github.com/deepmedia/Grease/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237743729,"owners_count":19359287,"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":["aar","android","android-lib","android-library","android-library-management","android-studio","fat","fatjar","fatjar-generator","gradle","gradle-plugin"],"created_at":"2024-10-09T11:00:34.516Z","updated_at":"2025-10-22T22:30:39.678Z","avatar_url":"https://github.com/deepmedia.png","language":"Kotlin","readme":"[![Build Status](https://github.com/deepmedia/Grease/actions/workflows/build.yml/badge.svg?event=push)](https://github.com/deepmedia/Grease/actions)\n[![Release](https://img.shields.io/github/release/deepmedia/Grease.svg)](https://github.com/deepmedia/Grease/releases)\n[![Issues](https://img.shields.io/github/issues-raw/deepmedia/Grease.svg)](https://github.com/deepmedia/Grease/issues)\n\n# Grease\n\nA Gradle plugin for creating fat AARs, useful for distributing multiple modules in a single file.\nTo install the plugin, apply it to your Android project:\n\n```kotlin\n// settings.gradle.kts\npluginManagement {\n    repositories {\n        mavenCentral()\n    }\n}\n\n// build.gradle.kts\nplugins {\n    id(\"com.android.library\")\n    id(\"io.deepmedia.tools.grease\") version \"0.3.7\"\n}\n```\n\nNote: The minimum required version of Gradle is 8.3\n\n## Usage\n\nOnce applied, Grease will create Gradle configurations that you can use to select which of your\ndependencies should be bundled in the final fat AAR.\n\n```kotlin\ndependencies {\n    // Api dependency. This will not be bundled.\n    api(\"androidx.core:core:1.3.1\")\n\n    // Implementation dependency. This will not be bundled.\n    implementation(\"androidx.core:core:1.3.1\")\n\n    // Grease dependency! This will be bundled into the final AAR.\n    grease(\"androidx.core:core:1.3.1\")\n\n    // Build-type, product flavour and variant specific configurations.\n    // Can be used to enable grease only on specific library variants.\n    greaseRelease(\"androidx.core:core:1.3.1\")\n    greaseDebug(\"androidx.core:core:1.3.1\")\n    greaseBlueCircleDebug(\"androidx.core:core:1.3.1\")\n    greaseGreenTriangleRelease(\"androidx.core:core:1.3.1\")\n}\n```\n\nNote that we used `androidx.core:core:1.3.1` as an example, but that is not recommended as it will\nlikely cause compile issue on projects that consume the Grease AAR, if they already depend on the\n`androidx.core:core:1.3.1` (as most project do).\n\nIf you don't control the projects that will consume the Grease AAR, you should only bundle in\ndependencies that you own, to be sure that they won't be present in the classpath of the consumer.\n\n### Transitivity\n\nBy default, declaring a specific grease dependency **will not** include transitive dependencies. \nTo do so, you can use grease configurations ending in `Tree`:\n\n```kotlin\ndependencies {\n    grease(\"my-package:artifact:1.0.0\") // not transitive\n    greaseTree(\"my-other-package:other-artifact:1.0.0\") // transitive\n}\n```\n\n### Relocations\n\nWe support relocations through the popular [Shadow](https://github.com/GradleUp/shadow) plugin. Inside the `grease`\nextension, you can use:\n\n- `relocate(prefix: String)` to relocate all included packages by prefixing them with the given prefix. Defaults to `\"grease\"`.\n- `relocate(from: String, to: String, configure: Action\u003cSimpleRelocator\u003e)` to register a package-specific relocator,\n  as described in the [shadow plugin docs](https://gradleup.com/shadow/configuration/relocation/#relocating-packages)\n","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepmedia%2FGrease","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepmedia%2FGrease","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepmedia%2FGrease/lists"}