import org.apache.ivy.core.settings.IvySettings import org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser import org.apache.ivy.core.module.descriptor.DependencyDescriptor import org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency import org.apache.ivy.core.module.id.ModuleRevisionId configurations { optional compile runtime.extendsFrom compile testCompile.extendsFrom runtime } def springConfigurations = [ optional: configurations.optional, compile: configurations.compile, runtime: configurations.runtime, test: configurations.testCompile] IvySettings ivySettings = new IvySettings(); ivySettings.addAllVariables([ "integration.repo.dir": "/Users/hans/checkouts/spring-framework/integration-repo", "local.repo.dir": "/Users/hans/checkouts/spring-framework/integration-repo", "ivy.cache.dir": "/Users/hans/checkouts/spring-framework/ivy-cache", "spring.build.dir": "/Users/hans/checkouts/spring-framework/spring-build", "publish.bucket": "mybucket", "adjusted.release.type": "release", "org.junit.version": "4.8.1"]) ivySettings.load(new File("/Users/hans/checkouts/spring-framework/spring-build/common/ivysettings.xml")); repositories { add(ivySettings.getResolver("external-lookup")) add(ivySettings.getResolver("spring-portfolio-lookup")) } DefaultModuleDescriptor moduleDescriptor = (DefaultModuleDescriptor) XmlModuleDescriptorParser.getInstance().parseDescriptor(ivySettings, new File("/Users/hans/checkouts/spring-framework/org.springframework.core/ivy.xml").toURL(), false); moduleDescriptor.getDependencies().each { DependencyDescriptor descriptor -> def mappableConfiguration = descriptor.moduleConfigurations.find { springConf -> springConfigurations.containsKey(springConf) } if (mappableConfiguration) { ModuleRevisionId id = descriptor.dependencyRevisionId springConfigurations[mappableConfiguration].addDependency( new DefaultExternalModuleDependency(id.organisation, id.name, id.revision, descriptor.getDependencyConfigurations(mappableConfiguration)[0]) ) } } task showConf << { configurations.testCompile.each { println it } }