Gradle question: implementation vs runtimeClasspath, testImplementation vs testRuntimeClasspath

I'm new to Gradle.

The command:

$ ./gradlew dependencies

display a list of dependencies. would someone explain what is the differences between the followings?

implementation vs runtimeClasspath              // they both specifies dependencies for runtime
testImplementation vs testRuntimeClasspath      // they both specifies dependencies for testing


  • the gradle documentation java_library_configurations_graph provides the detailed explanation.
    start point - *classpath are realised from the dependency configuration (impl...etc), you should not need to meddle with *classpath (unless doing something special)