{"id":26629936,"url":"https://github.com/gradlex-org/jvm-dependency-conflict-resolution","last_synced_at":"2025-12-15T16:07:53.403Z","repository":{"id":42465231,"uuid":"477613699","full_name":"gradlex-org/jvm-dependency-conflict-resolution","owner":"gradlex-org","description":"Gradle plugin to improve Dependency Conflict Detection and Resolution","archived":false,"fork":false,"pushed_at":"2025-04-04T07:35:55.000Z","size":1670,"stargazers_count":57,"open_issues_count":36,"forks_count":16,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-04T08:29:29.088Z","etag":null,"topics":["capabilities","dependencies","gradle","gradle-plugin","java"],"latest_commit_sha":null,"homepage":"http://gradlex.org/jvm-dependency-conflict-resolution/","language":"Java","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/gradlex-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-04-04T08:33:52.000Z","updated_at":"2025-04-04T07:35:30.000Z","dependencies_parsed_at":"2024-01-04T19:46:02.387Z","dependency_job_id":"c8d77807-3057-48eb-b408-bbab8cd6954a","html_url":"https://github.com/gradlex-org/jvm-dependency-conflict-resolution","commit_stats":null,"previous_names":["gradlex-org/jvm-dependency-conflict-resolution","gradlex-org/java-ecosystem-capabilities"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradlex-org%2Fjvm-dependency-conflict-resolution","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradlex-org%2Fjvm-dependency-conflict-resolution/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradlex-org%2Fjvm-dependency-conflict-resolution/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradlex-org%2Fjvm-dependency-conflict-resolution/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gradlex-org","download_url":"https://codeload.github.com/gradlex-org/jvm-dependency-conflict-resolution/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243421,"owners_count":21071054,"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":["capabilities","dependencies","gradle","gradle-plugin","java"],"created_at":"2025-03-24T13:16:16.858Z","updated_at":"2025-12-15T16:07:53.353Z","avatar_url":"https://github.com/gradlex-org.png","language":"Java","funding_links":[],"categories":["gradle","Gradle插件"],"sub_categories":["文件同步"],"readme":"# JVM Dependency Conflict Detection and Resolution plugins\n\n[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fgradlex-org%2Fjvm-dependency-conflict-resolution%2Fbadge%3Fref%3Dmain\u0026style=flat)](https://actions-badge.atrox.dev/gradlex-org/jvm-dependency-conflict-resolution/goto?ref=main)\n[![Gradle Plugin Portal](https://img.shields.io/maven-metadata/v?label=Plugin%20Portal\u0026metadataUrl=https%3A%2F%2Fplugins.gradle.org%2Fm2%2Forg%2Fgradlex%2Fjvm-dependency-conflict-resolution%2Forg.gradlex.jvm-dependency-conflict-resolution.gradle.plugin%2Fmaven-metadata.xml)](https://plugins.gradle.org/plugin/org.gradlex.jvm-dependency-conflict-resolution)\n\nThe `org.gradlex.jvm-dependency-conflict-detection` plugin adds [Capabilities](https://docs.gradle.org/current/userguide/component_capabilities.html#capabilities_as_first_level_concept) \nto the metadata of well-known components hosted on Maven Central that are used in many Java projects.\n\nThe `org.gradlex.jvm-dependency-conflict-resolution` plugin offers a compact language to address dependency conflicts by expressing strategies for Gradle to follow or to fix issues in the metadata of published components.\n\n## What is a 'Capability' in Gradle and why should I care?\n\nThe videos below explain the concept of Capability Conflicts and why they can help you to avoid \"dependency hell\" in your project.\nWith this plugin, you enable Gradle to detect and automatically resolved typical capability conflicts in the JVM ecosystem.\n\n[\u003cimg src=\"https://onepiecesoftware.github.io/img/videos/29.png\" width=\"320\"\u003e](https://www.youtube.com/watch?v=KocTqF0hO_8\u0026list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)\n[\u003cimg src=\"https://onepiecesoftware.github.io/img/videos/11.png\" width=\"320\"\u003e](https://www.youtube.com/watch?v=5g20kbbqBFk\u0026list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE)\n\n## How to use the plugin?\n\nSee the [documentation](https://gradlex.org/jvm-dependency-conflict-resolution/).\n\n### Supported Gradle versions\n\n- Minimal Gradle version is `6.8.3`\n\nNote: There are rules in this plugin (in particular for _Guava_) which work _better_ with Gradle `7+`.\nThis is because Gradle 7 added support for the `org.gradle.jvm.environment` attribute that allows Gradle to better distinguish between _standard-jvm_ and _android_ projects.\n\n### Notes on the Plugins history\n\nThese plugins join, unify and extend functionalities that were previously part of the following discontinued plugins:\n\n- https://plugins.gradle.org/plugin/org.gradlex.java-ecosystem-capabilities\n- https://plugins.gradle.org/plugin/dev.jacomet.logging-capabilities\n- https://plugins.gradle.org/plugin/de.jjohannes.java-ecosystem-capabilities\n- https://plugins.gradle.org/plugin/de.jjohannes.missing-metadata-guava\n\n**NOTE on Guava**:\nSome of these plugins are used to patch older versions of Guava.\nThis functionality is discontinued.\nMost of the patching is not included anymore by default, because Guava now publishes richer metadata and some of the adjustments were opinionated.\nIf you use the latest Guava version, you may not need anything specific.\nIf some of the transitive dependencies are not wanted in your case, you can fine tune them using the `jvmDependencyConflicts.patch` DSL. E.g.:\n\n```kotlin\njvmDependencyConflicts {\n    patch {\n        module(\"com.google.guava:guava\") {\n            removeDependency(\"com.google.code.findbugs:jsr305\")\n            reduceToCompileOnlyApiDependency(\"com.google.errorprone:error_prone_annotations\")\n        }\n    }\n}\n```\n\nIf you need the previous behavior for older Guava versions, you can explicitly apply the `GuavaComponentRule`.\n\n```kotlin\ndependencies.components {\n    withModule\u003cGuavaComponentRule\u003e(\"com.google.guava:guava\")\n}\n```\n\n## Disclaimer\n\nGradle and the Gradle logo are trademarks of Gradle, Inc.\nThe GradleX project is not endorsed by, affiliated with, or associated with Gradle or Gradle, Inc. in any way.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgradlex-org%2Fjvm-dependency-conflict-resolution","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgradlex-org%2Fjvm-dependency-conflict-resolution","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgradlex-org%2Fjvm-dependency-conflict-resolution/lists"}