It is not an easy task. Some 3rd party API (Spring io.spring.gradle:dependency-management-plugin, native BOM file support, etc) can magically alter Gradle behavior.
Copy dependency declaration parts to a simple project and start to eliminate dependencies and plugins until you find an offender ))
True, the implementation configuration is not resolvable. If you want to know why a compile dependency’s version is being downgraded, then you need to look at it from the perspective of the compileClasspath configuration in order to get the complete picture. implementation is just a container for declaring dependencies and is not the only configuration that makes up the compile classpath.