# Gradle fails to resolve between ivy dependencies with and without classifier

**URL:** <https://discuss.gradle.org/t/gradle-fails-to-resolve-between-ivy-dependencies-with-and-without-classifier/17420>\
**Category:** Bugs\
**Created:** [May 3, 2016, 6:18pm UTC](https://discuss.gradle.org/t/gradle-fails-to-resolve-between-ivy-dependencies-with-and-without-classifier/17420 "2016-05-03T18:18:48Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mkornipati](https://avatars.discourse-cdn.com/v4/letter/m/f05b48/32.png) [@mkornipati](https://discuss.gradle.org/u/mkornipati)\
**Post date:** [May 3, 2016, 6:18pm UTC](https://discuss.gradle.org/t/gradle-fails-to-resolve-between-ivy-dependencies-with-and-without-classifier/17420/1 "2016-05-03T18:18:49Z")

</div>

Few of our project libraries will produce java 8 and java 7 artifact jars differentiated by classifier. ‘jdk7’ (if it is jdk7 compiled) and no classifier (if it is jdk8 compiled) and these are being published to our internal repositories.

let’s say like

> foo-1.0.0.jar  
> foo-1.0.0-jdk7.jar  
> ivy-1.0.1.xml

and coming to consuming side, projects building on java 8 will consume the above mentioned dependencies with usual practice (with no classifier) and any projects building on java 7 consume them with classifier - jdk7 along with group, name and version.

But we identified an issue when Java 7 consumer projects when it got dependencies `foo:1.0.0:jdk7` as direct and `foo:1.0.0` as transitive

We are finding the consuming project ended up having both

> ```
> foo:1.0.0:jdk7
> foo:1.0.0
> 
> ```

in the dependency graph and not resolved any one.

I tried using Dependency `dependencySubstitution` (with classifier) and also tried by `force` strategies (with classifier) and both these approaches not worked.

Is there any way, we can tell Gradle dependency resolution to consider dependencies with classifier has higher or lower?
