mirror of https://github.com/sbt/sbt.git
Add failing transitive wildcard dependency test
This commit is contained in:
parent
16a6906826
commit
4cdbafadbf
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
resolvers += {
|
||||
val f = baseDirectory.value / "repository"
|
||||
"local-test-repo" at f.getCanonicalFile.toURI.toASCIIString
|
||||
}
|
||||
libraryDependencies += "exclude.wildcard.test" % "top" % "1.0.0"
|
||||
|
||||
val checkDependencies = taskKey[Unit]("Checks if wildcard excludes work correctly.")
|
||||
|
||||
checkDependencies := {
|
||||
val hasTopJar = (fullClasspath in Compile).value.exists { jar => jar.data.getName contains "top-1.0.0.jar"}
|
||||
val hasBottomJar = (fullClasspath in Compile).value.exists { jar => jar.data.getName contains "bottom-1.0.0.jar"}
|
||||
val hasMiddleJar = (fullClasspath in Compile).value.exists { jar => jar.data.getName contains "middle-1.0.0.jar"}
|
||||
val errorJarString = (fullClasspath in Compile).value.map(_.data.getName).mkString(" * ", "\n * ", "")
|
||||
assert(hasTopJar, s"Failed to include dependency with wildcard exclusion on classpath!\nFound:\n$errorJarString")
|
||||
assert(hasMiddleJar, s"Failed to include dependency with wildcard exclusion on classpath!\nFound:\n$errorJarString")
|
||||
assert(!hasBottomJar, 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 hasTopDep = modules exists { m =>
|
||||
(m.organization == "exclude.wildcard.test") && (m.name == "top")
|
||||
}
|
||||
val hasMiddleDep = modules exists { m =>
|
||||
(m.organization == "exclude.wildcard.test") && (m.name == "middle")
|
||||
}
|
||||
val hasBottomDep = modules exists { m =>
|
||||
(m.organization == "exclude.wildcard.test") && (m.name == "bottom")
|
||||
}
|
||||
|
||||
val errModuleString = modules.mkString("\n * ", "\n * ", "")
|
||||
assert(hasTopDep, s"Failed to include dependency with wildcard exclusion!\nFound:\n$errModuleString")
|
||||
assert(hasMiddleDep, s"Failed to include dependency with wildcard exclusion!\nFound:\n$errModuleString")
|
||||
assert(!hasBottomDep, s"Failed to exclude transitive excluded dependency!\nFound:\n$errModuleString")
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
> checkDependencies
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>exclude.wildcard.test</groupId>
|
||||
<artifactId>bottom</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0.0</version>
|
||||
<name>bottom</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>exclude.wildcard.test</groupId>
|
||||
<artifactId>middle</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0.0</version>
|
||||
<name>middle</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>exclude.wildcard.test</groupId>
|
||||
<artifactId>bottom</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>exclude.wildcard.test</groupId>
|
||||
<artifactId>top</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0.0</version>
|
||||
<name>top</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>exclude.wildcard.test</groupId>
|
||||
<artifactId>middle</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
Loading…
Reference in New Issue