How to access dependency classifier and extension in gradle build script

Extensions and classifiers are attributes of a dependency’s artifacts. For each dependency you can call getArtifacts, which will return a set of DependencyArtifact.
Note, getArtifacts is not available for all subinterfaces of Dependency.

For example:

configurations {
    deps
}

dependencies {
    deps group: 'junit', name: 'junit', version: '+', ext: 'jar', classifier: 'sources'
    deps group: 'junit', name: 'junit', version: '+', ext: 'jar'
    deps group: 'junit', name: 'junit', version: '+'
}

task printDeps {
    doLast {
        configurations.deps.dependencies.each { dep ->
            println "${dep.group} - ${dep.name} - ${dep.version}"
            dep.artifacts.each { art ->
                println "    ${art.extension} - ${art.classifier}"
            }
        }
    }
}

Outputs:

:printDeps
junit - junit - +
    jar - sources
junit - junit - +
    jar - null
junit - junit - +

Side question; Do you really want the configured dependencies, or do you want the resolved dependencies? In my example, the configured dependencies have a version of +, but a resolved version would be something like 4.12