{"id":3447,"url":"https://github.com/google/dagger","last_synced_at":"2025-10-05T17:31:39.582Z","repository":{"id":6722611,"uuid":"7968417","full_name":"google/dagger","owner":"google","description":"A fast dependency injector for Android and Java.","archived":false,"fork":true,"pushed_at":"2025-09-28T12:29:44.000Z","size":172701,"stargazers_count":17637,"open_issues_count":376,"forks_count":2041,"subscribers_count":522,"default_branch":"master","last_synced_at":"2025-09-29T11:42:23.464Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dagger.dev","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"square/dagger","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2013-02-01T23:14:14.000Z","updated_at":"2025-09-28T20:05:02.000Z","dependencies_parsed_at":"2023-10-02T19:46:33.223Z","dependency_job_id":null,"html_url":"https://github.com/google/dagger","commit_stats":{"total_commits":3469,"total_committers":158,"mean_commits":"21.955696202531644","dds":0.7829345632747189,"last_synced_commit":"89d615c779df42ddf3b0450764f1370ef1c5fa7d"},"previous_names":[],"tags_count":109,"template":false,"template_full_name":null,"purl":"pkg:github/google/dagger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fdagger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fdagger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fdagger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fdagger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/dagger/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fdagger/sbom","scorecard":{"id":436716,"data":{"date":"2025-08-11","repo":{"name":"github.com/google/dagger","commit":"57a439ba18306a0f035b7cdd8e91b077e04b6233"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.2,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 2/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/ci.yml:126","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yml:99","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/google/.github/SECURITY.md:1","Info: Found linked content: github.com/google/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/google/.github/SECURITY.md:1","Info: Found text in security policy: github.com/google/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (28) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: dagger-compiler/main/java/dagger/internal/codegen/bootstrap/bootstrap_compiler_deploy.jar:1","Warn: binary detected: dagger-compiler/main/java/dagger/internal/codegen/xprocessing/xprocessing-internal.jar:1","Warn: binary detected: dagger-compiler/main/java/dagger/internal/codegen/xprocessing/xprocessing-testing-internal.jar:1","Warn: binary detected: dagger-kythe/main/java/dagger/internal/codegen/kythe/kythe_plugin_deploy.jar:1","Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: java/dagger/hilt/android/plugin/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/dagger-android-ksp/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/dagger-android/simple/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/dagger-ksp/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/dagger/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/dagger/lazyclasskey/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/hilt-android/lazyclasskey/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/hilt-android/pluginMarker/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/hilt-android/simple/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/hilt-android/simpleKotlin/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: javatests/artifacts/hilt-android/viewmodel/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: tools/jarjar/test/test-library1.jar:1","Warn: binary detected: tools/jarjar/test/test-library2.jar:1","Warn: binary detected: tools/shader/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: $ cannot be followed by a word: util/generate-latest-docs.sh:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:139: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:155: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:77: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:190: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:207: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/ci.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/google/dagger/release.yml/master?enable=pin","Info:   0 out of  28 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-19T04:51:26.005Z","repository_id":6722611,"created_at":"2025-08-19T04:51:26.005Z","updated_at":"2025-08-19T04:51:26.005Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278486611,"owners_count":25995006,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"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":"2024-01-05T20:16:41.793Z","updated_at":"2025-10-05T17:31:39.564Z","avatar_url":"https://github.com/google.png","language":"Java","readme":"# Dagger\n\n[![Maven Central][mavenbadge-svg]][mavencentral]\n\nA fast dependency injector for Java and Android.\n\nDagger is a compile-time framework for dependency injection. It uses no\nreflection or runtime bytecode generation, does all its analysis at\ncompile-time, and generates plain Java source code.\n\nDagger is actively maintained by Google.  Snapshot releases are auto-deployed to\nSonatype's central Maven repository on every clean build with the version\n`HEAD-SNAPSHOT`. The current version builds upon previous work done at [Square][square].\n\n## Documentation\n\nYou can [find the dagger documentation here][website] which has extended usage\ninstructions and other useful information. More detailed information can be\nfound in the [API documentation][latestapi].\n\nYou can also learn more from [the original proposal][proposal],\n[this talk by Greg Kick][gaktalk], and on the dagger-discuss@googlegroups.com\nmailing list.\n\n## Installation\n\n### Bazel\n\nFirst, import the Dagger repository into your `WORKSPACE` file using\n[`http_archive`][bazel-external-deps].\n\nNote: The `http_archive` must point to a tagged release of Dagger, not just any\ncommit. The version of the Dagger artifacts will match the version of the tagged\nrelease.\n\n```python\n# Top-level WORKSPACE file\n\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n\nDAGGER_TAG = \"2.57.2\"\nDAGGER_SHA = \"6c44dba5d18ac87c9afceea1af1b29b13220a1076c443f519b8f984e667fa1a9\"\nhttp_archive(\n    name = \"dagger\",\n    strip_prefix = \"dagger-dagger-%s\" % DAGGER_TAG,\n    sha256 = DAGGER_SHA,\n    urls = [\"https://github.com/google/dagger/archive/dagger-%s.zip\" % DAGGER_TAG],\n)\n```\n\nNext you will need to setup targets that export the proper dependencies\nand plugins. Follow the sections below to setup the dependencies you need.\n\n#### Dagger Setup\n\nFirst, load the Dagger artifacts and repositories, and add them to your list of\n[`maven_install`] artifacts.\n\n```python\n# Top-level WORKSPACE file\n\nload(\"@dagger//:workspace_defs.bzl\", \"DAGGER_ARTIFACTS\", \"DAGGER_REPOSITORIES\")\n\nmaven_install(\n    artifacts = DAGGER_ARTIFACTS + [...],\n    repositories = DAGGER_REPOSITORIES + [...],\n)\n```\n\nNext, load and call [`dagger_rules`](https://github.com/google/dagger/blob/master/workspace_defs.bzl)\nin your top-level `BUILD` file:\n\n```python\n# Top-level BUILD file\n\nload(\"@dagger//:workspace_defs.bzl\", \"dagger_rules\")\n\ndagger_rules()\n```\n\nThis will add the following Dagger build targets:\n(Note that these targets already export all of the dependencies and processors\nthey need).\n\n```python\ndeps = [\n    \":dagger\",                  # For Dagger\n    \":dagger-spi\",              # For Dagger SPI\n    \":dagger-producers\",        # For Dagger Producers\n]\n```\n\n#### Dagger Android Setup\n\nFirst, load the Dagger Android artifacts and repositories, and add them to your\nlist of [`maven_install`] artifacts.\n\n```python\n# Top-level WORKSPACE file\n\nload(\n    \"@dagger//:workspace_defs.bzl\",\n    \"DAGGER_ANDROID_ARTIFACTS\",\n    \"DAGGER_ANDROID_REPOSITORIES\"\n)\n\nmaven_install(\n    artifacts = DAGGER_ANDROID_ARTIFACTS + [...],\n    repositories = DAGGER_ANDROID_REPOSITORIES + [...],\n)\n```\n\nNext, load and call [`dagger_android_rules`](https://github.com/google/dagger/blob/master/workspace_defs.bzl)\nin your top-level `BUILD` file:\n\n```python\n# Top-level BUILD file\n\nload(\"@dagger//:workspace_defs.bzl\", \"dagger_android_rules\")\n\ndagger_android_rules()\n```\n\nThis will add the following Dagger Android build targets:\n(Note that these targets already export all of the dependencies and processors\nthey need).\n\n```python\ndeps = [\n    \":dagger-android\",          # For Dagger Android\n    \":dagger-android-support\",  # For Dagger Android (Support)\n]\n```\n\n#### Hilt Android Setup\n\nFirst, load the Hilt Android artifacts and repositories, and add them to your\nlist of [`maven_install`] artifacts.\n\n```python\n# Top-level WORKSPACE file\n\nload(\n    \"@dagger//:workspace_defs.bzl\",\n    \"HILT_ANDROID_ARTIFACTS\",\n    \"HILT_ANDROID_REPOSITORIES\"\n)\n\nmaven_install(\n    artifacts = HILT_ANDROID_ARTIFACTS + [...],\n    repositories = HILT_ANDROID_REPOSITORIES + [...],\n)\n```\n\nNext, load and call [`hilt_android_rules`](https://github.com/google/dagger/blob/master/workspace_defs.bzl)\nin your top-level `BUILD` file:\n\n```python\n# Top-level BUILD file\n\nload(\"@dagger//:workspace_defs.bzl\", \"hilt_android_rules\")\n\nhilt_android_rules()\n```\n\nThis will add the following Hilt Android build targets:\n(Note that these targets already export all of the dependencies and processors\nthey need).\n\n```python\ndeps = [\n    \":hilt-android\",            # For Hilt Android\n    \":hilt-android-testing\",    # For Hilt Android Testing\n]\n```\n\n### Other build systems\n\nYou will need to include the `dagger-2.x.jar` in your application's runtime.\nIn order to activate code generation and generate implementations to manage\nyour graph you will need to include `dagger-compiler-2.x.jar` in your build\nat compile time.\n\n#### Maven\n\nIn a Maven project, include the `dagger` artifact in the dependencies section\nof your `pom.xml` and the `dagger-compiler` artifact as an\n`annotationProcessorPaths` value of the `maven-compiler-plugin`:\n\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.google.dagger\u003c/groupId\u003e\n    \u003cartifactId\u003edagger\u003c/artifactId\u003e\n    \u003cversion\u003e2.x\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n\u003cbuild\u003e\n  \u003cplugins\u003e\n    \u003cplugin\u003e\n      \u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\n      \u003cartifactId\u003emaven-compiler-plugin\u003c/artifactId\u003e\n      \u003cversion\u003e3.6.1\u003c/version\u003e\n      \u003cconfiguration\u003e\n        \u003cannotationProcessorPaths\u003e\n          \u003cpath\u003e\n            \u003cgroupId\u003ecom.google.dagger\u003c/groupId\u003e\n            \u003cartifactId\u003edagger-compiler\u003c/artifactId\u003e\n            \u003cversion\u003e2.x\u003c/version\u003e\n          \u003c/path\u003e\n        \u003c/annotationProcessorPaths\u003e\n      \u003c/configuration\u003e\n    \u003c/plugin\u003e\n  \u003c/plugins\u003e\n\u003c/build\u003e\n```\n\nIf you are using a version of the `maven-compiler-plugin` lower than `3.5`, add\nthe `dagger-compiler` artifact with the `provided` scope:\n\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.google.dagger\u003c/groupId\u003e\n    \u003cartifactId\u003edagger\u003c/artifactId\u003e\n    \u003cversion\u003e2.x\u003c/version\u003e\n  \u003c/dependency\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.google.dagger\u003c/groupId\u003e\n    \u003cartifactId\u003edagger-compiler\u003c/artifactId\u003e\n    \u003cversion\u003e2.x\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nIf you use the beta `dagger-producers` extension (which supplies\nparallelizable execution graphs), then add this to your maven configuration:\n\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.google.dagger\u003c/groupId\u003e\n    \u003cartifactId\u003edagger-producers\u003c/artifactId\u003e\n    \u003cversion\u003e2.x\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n#### Gradle\n```groovy\n// Add Dagger dependencies\ndependencies {\n  implementation 'com.google.dagger:dagger:2.x'\n  annotationProcessor 'com.google.dagger:dagger-compiler:2.x'\n}\n```\n\nIf you're using classes in `dagger.android` you'll also want to include:\n\n```groovy\nimplementation 'com.google.dagger:dagger-android:2.x'\nimplementation 'com.google.dagger:dagger-android-support:2.x' // if you use the support libraries\nannotationProcessor 'com.google.dagger:dagger-android-processor:2.x'\n```\n\nNotes:\n\n-   We use `implementation` instead of `api` for better compilation performance.\n    -   See the [Gradle documentation][gradle-api-implementation] for more\n        information on how to select appropriately, and the [Android Gradle\n        plugin documentation][gradle-api-implementation-android] for Android\n        projects.\n-   For Kotlin projects, use [`kapt`] in place of `annotationProcessor`.\n\nIf you're using the [Android Databinding library][databinding], you may want to\nincrease the number of errors that `javac` will print. When Dagger prints an\nerror, databinding compilation will halt and sometimes print more than 100\nerrors, which is the default amount for `javac`. For more information, see\n[Issue 306](https://github.com/google/dagger/issues/306).\n\n```groovy\ngradle.projectsEvaluated {\n  tasks.withType(JavaCompile) {\n    options.compilerArgs \u003c\u003c \"-Xmaxerrs\" \u003c\u003c \"500\" // or whatever number you want\n  }\n}\n```\n\n### Resources\n\n*   [Documentation][website]\n*   [Javadocs][latestapi]\n*   [GitHub Issues]\n\n\nIf you do not use maven, gradle, ivy, or other build systems that consume\nmaven-style binary artifacts, they can be downloaded directly via the\n[Maven Central Repository][mavencentral].\n\nDeveloper snapshots are available from Sonatype's\n[snapshot repository][dagger-snap], and are built on a clean build of\nthe GitHub project's master branch.\n\n## Building Dagger\n\nSee [the CONTRIBUTING.md docs][Building Dagger].\n\n## License\n\n    Copyright 2012 The Dagger Authors\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n[`bazel`]: https://bazel.build\n[bazel-external-deps]: https://docs.bazel.build/versions/master/external.html#depending-on-other-bazel-projects\n[`maven_install`]: https://github.com/bazelbuild/rules_jvm_external#exporting-and-consuming-artifacts-from-external-repositories\n[Building Dagger]: CONTRIBUTING.md#building-dagger\n[dagger-snap]: https://central.sonatype.com/repository/maven-snapshots/com/google/dagger/\n[databinding]: https://developer.android.com/topic/libraries/data-binding/\n[gaktalk]: https://www.youtube.com/watch?v=oK_XtfXPkqw\n[GitHub Issues]: https://github.com/google/dagger/issues\n[gradle-api-implementation]: https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation\n[gradle-api-implementation-android]: https://developer.android.com/studio/build/dependencies#dependency_configurations\n[`kapt`]: https://kotlinlang.org/docs/reference/kapt.html\n[latestapi]: https://dagger.dev/api/latest/\n[mavenbadge-svg]: https://maven-badges.herokuapp.com/maven-central/com.google.dagger/dagger/badge.svg\n[mavencentral]: https://search.maven.org/artifact/com.google.dagger/dagger\n[project]: http://github.com/google/dagger/\n[proposal]: https://github.com/square/dagger/issues/366\n[square]: http://github.com/square/dagger/\n[website]: https://dagger.dev\n","funding_links":[],"categories":["Dependency Injections","Annotation","Java","Libraries","Java (78)","others","1. Important library","Introduction",":shamrock:  **Categories**","Android Kotlin Project Showcase","IoC",":books: Tech Stack/Libraries"],"sub_categories":["Dependency Injection","Dagger2",":books: Libraries","MVP"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fdagger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fdagger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fdagger/lists"}