From 3e9a37edc358e1960ce607e9958c310afa2a01c8 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Sat, 23 Jan 2016 15:42:06 +0100 Subject: [PATCH] Do not fetch artifacts with a classifier from Ivy repositories if not asked to do so --- .../scala/coursier/ivy/IvyRepository.scala | 7 +++-- .../scala/coursier/test/IvyLocalTests.scala | 31 +++++++++++++++++-- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/core/shared/src/main/scala/coursier/ivy/IvyRepository.scala b/core/shared/src/main/scala/coursier/ivy/IvyRepository.scala index 599b5ceac..15cbfa30e 100644 --- a/core/shared/src/main/scala/coursier/ivy/IvyRepository.scala +++ b/core/shared/src/main/scala/coursier/ivy/IvyRepository.scala @@ -61,9 +61,10 @@ case class IvyRepository( case None => project.publications.collect { case (conf, p) - if conf == "*" || - conf == dependency.configuration || - project.allConfigurations.getOrElse(dependency.configuration, Set.empty).contains(conf) => + if (conf == "*" || + conf == dependency.configuration || + project.allConfigurations.getOrElse(dependency.configuration, Set.empty).contains(conf) + ) && p.classifier.isEmpty => p } case Some(classifiers) => diff --git a/tests/jvm/src/test/scala/coursier/test/IvyLocalTests.scala b/tests/jvm/src/test/scala/coursier/test/IvyLocalTests.scala index db4006289..4cf3b9669 100644 --- a/tests/jvm/src/test/scala/coursier/test/IvyLocalTests.scala +++ b/tests/jvm/src/test/scala/coursier/test/IvyLocalTests.scala @@ -1,16 +1,41 @@ package coursier.test -import coursier.{ Module, Cache } +import coursier.{ Dependency, Module, Cache } +import coursier.test.compatibility._ + +import scala.async.Async.{ async, await } + import utest._ object IvyLocalTests extends TestSuite { val tests = TestSuite{ 'coursier{ + val module = Module("com.github.alexarchambault", "coursier_2.11") + val version = "1.0.0-SNAPSHOT" + + val extraRepo = Some(Cache.ivy2Local) + // Assume this module (and the sub-projects it depends on) is published locally CentralTests.resolutionCheck( - Module("com.github.alexarchambault", "coursier_2.11"), "1.0.0-SNAPSHOT", - Some(Cache.ivy2Local)) + module, version, + extraRepo + ) + + + async { + val res = await(CentralTests.resolve( + Set(Dependency(module, version)), + extraRepo = extraRepo + )) + + val artifacts = res.artifacts.map(_.url) + val anyJavadoc = artifacts.exists(_.contains("-javadoc")) + val anySources = artifacts.exists(_.contains("-sources")) + + assert(!anyJavadoc) + assert(!anySources) + } } }