diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/build.sbt b/sbt/src/sbt-test/dependency-management/transitive-excludes/build.sbt new file mode 100644 index 000000000..5a04d1401 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/transitive-excludes/build.sbt @@ -0,0 +1,28 @@ + + +resolvers += { + val f = baseDirectory.value / "repository" + "local-test-repo" at f.getCanonicalFile.toURI.toASCIIString +} +libraryDependencies += "exclude.test" % "app" % "1.0.0" + +val checkDependencies = taskKey[Unit]("Checks that dependcies are correct.") + +checkDependencies := { + val hasBadJar = (fullClasspath in Compile).value.exists { jar => jar.data.getName contains "bottom-1.0.0.jar"} + val errorJarString = (fullClasspath in Compile).value.map(_.data.getName).mkString(" * ", "\n * ", "") + assert(!hasBadJar, s"Failed to exclude transitive excluded dependency on classpath!\nFound:\n$errorJarString") + val modules = + (for { + c <- update.value.configurations + m <- c.modules + if !m.evicted + } yield m.module).distinct + val hasBadDep = + modules exists { m => + (m.organization == "exclude.test") && (m.name == "bottom") + } + val errModuleString = modules.mkString("\n * ", "\n * ", "") + assert(!hasBadDep, s"Failed to exclude transitive excluded dependency!\nFound:\n$errModuleString") + +} \ No newline at end of file diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/app/1.0.0/app-1.0.0.jar b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/app/1.0.0/app-1.0.0.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/app/1.0.0/app-1.0.0.pom b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/app/1.0.0/app-1.0.0.pom new file mode 100644 index 000000000..ba115f816 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/app/1.0.0/app-1.0.0.pom @@ -0,0 +1,17 @@ + + 4.0.0 + exclude.test + app + jar + 1.0.0 + app + http://maven.apache.org + + + exclude.test + top + 1.0.0 + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/bottom/1.0.0/bottom-1.0.0.jar b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/bottom/1.0.0/bottom-1.0.0.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/bottom/1.0.0/bottom-1.0.0.pom b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/bottom/1.0.0/bottom-1.0.0.pom new file mode 100644 index 000000000..757ce6d6a --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/bottom/1.0.0/bottom-1.0.0.pom @@ -0,0 +1,12 @@ + + 4.0.0 + exclude.test + bottom + jar + 1.0.0 + bottom + http://maven.apache.org + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/middle/1.0.0/middle-1.0.0.jar b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/middle/1.0.0/middle-1.0.0.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/middle/1.0.0/middle-1.0.0.pom b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/middle/1.0.0/middle-1.0.0.pom new file mode 100644 index 000000000..fe6e0c993 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/middle/1.0.0/middle-1.0.0.pom @@ -0,0 +1,17 @@ + + 4.0.0 + exclude.test + middle + jar + 1.0.0 + middle + http://maven.apache.org + + + exclude.test + bottom + 1.0.0 + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/top/1.0.0/top-1.0.0.jar b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/top/1.0.0/top-1.0.0.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/top/1.0.0/top-1.0.0.pom b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/top/1.0.0/top-1.0.0.pom new file mode 100644 index 000000000..912f10b7a --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/transitive-excludes/repository/exclude/test/top/1.0.0/top-1.0.0.pom @@ -0,0 +1,23 @@ + + 4.0.0 + exclude.test + top + jar + 1.0.0 + top + http://maven.apache.org + + + exclude.test + middle + 1.0.0 + + + exclude.test + middle + + + + + \ No newline at end of file diff --git a/sbt/src/sbt-test/dependency-management/transitive-excludes/test b/sbt/src/sbt-test/dependency-management/transitive-excludes/test new file mode 100644 index 000000000..c579cedc3 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/transitive-excludes/test @@ -0,0 +1 @@ +> checkDependencies \ No newline at end of file