jvm-dependency-conflict-resolution
jvm-dependency-conflict-resolution copied to clipboard
Gradle plugin to improve Dependency Conflict Detection and Resolution
I'm applying the plugins via `buildSrc`: ```kotlin plugins { java id("org.gradlex.jvm-dependency-conflict-resolution") id("org.gradlex.jvm-dependency-conflict-detection") } ``` (version `2.0`) Then I apply the convention to my root project. When I try to assemble...
See https://github.com/spring-projects/spring-boot/issues/32881
1. [org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec](https://mvnrepository.com/artifact/org.jboss.spec.javax.transaction/jboss-transaction-api_1.1_spec/1.0.1.Final) 2. [org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec](https://mvnrepository.com/artifact/org.jboss.spec.javax.transaction/jboss-transaction-api_1.2_spec/1.1.1.Final) 3. [org.jboss.spec.javax.transaction:jboss-transaction-api_1.3_spec](https://mvnrepository.com/artifact/org.jboss.spec.javax.transaction/jboss-transaction-api_1.3_spec/2.0.0.Final) all package `javax.transaction` package inside.
spring-jcl is not treated equally: it is detected as causing the conflict: ``` > Module 'commons-logging:commons-logging' has been rejected: Cannot select module with conflict on capability 'org.gradlex:commons-logging-impl:1.0' also provided by...
Calling `enforceLog4J2()` chooses `LOG4J_SLF4J_IMPL` as slf4j impl. Wouldn't it be more appropriate to select `LOG4J_SLF4J2_IMPL`?
Slf4j 2 is a major breaking change (uses ServiceLoader rather than "static binder mechanism"), and Logback migrated to Slf4j 2 in version 1.3. When working on tests for a PR...
Should be able to write: ``` jvmDependencyConflicts { patch { module("org.openjfx:javafx-base", "org.openjfx:javafx-graphics") { addTargetPlatformVariant("", "none", "none") addTargetPlatformVariant("linux", OperatingSystemFamily.LINUX, MachineArchitecture.X86_64) addTargetPlatformVariant("mac", OperatingSystemFamily.MACOS, MachineArchitecture.X86_64) addTargetPlatformVariant("mac-aarch64", OperatingSystemFamily.MACOS, MachineArchitecture.ARM64) addTargetPlatformVariant("win", OperatingSystemFamily.WINDOWS, MachineArchitecture.X86_64) } }...
Hi, I did add some rules to my `settings.gradle` like this: ``` dependencyResolutionManagement { components { all { allVariants { withDependencies { removeAll { it.group in ["com.oracle.jdbc", "com.oracle.database.jdbc"] } }...
Hi @jjohannes, I added some additional rules along the lines of https://blog.gradle.org/alignment-with-gradle-module-metadata to align Jetty, Jersey, Asm and Apache SSHD dependency versions. Let me know what you think :)