Merge pull request #2911 from eed3si9n/fport/cached-resolution-configurations

[fport] Adds back dependency-management /cached-resolution-configurations
This commit is contained in:
eugene yokota 2017-01-14 07:45:20 -05:00 committed by GitHub
commit 3ce06e15c5
12 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,5 @@
package a
object A {
romanowski.sbt.bug.MissingClass("A")
}

View File

@ -0,0 +1,5 @@
package b
object B {
romanowski.sbt.bug.MissingClass("A")
}

View File

@ -0,0 +1,28 @@
def commonSettings: Vector[Def.Setting[_]] =
Vector(
organization := "com.example",
ivyPaths := IvyPaths( (baseDirectory in ThisBuild).value, Some((baseDirectory in LocalRootProject).value / "ivy-cache")),
dependencyCacheDirectory := (baseDirectory in LocalRootProject).value / "dependency",
resolvers += Resolver.file("buggy", (baseDirectory in LocalRootProject).value / "repo")(
Patterns(
ivyPatterns = Vector("[organization]/[module]/[revision]/ivy.xml"),
artifactPatterns = Vector("[organization]/[module]/[revision]/[artifact]"),
isMavenCompatible = false,
descriptorOptional = true,
skipConsistencyCheck = true
)
)
)
lazy val a = project settings(
commonSettings,
updateOptions := updateOptions.value.withCachedResolution(true), //comment this line to make ws compile
libraryDependencies += "a" % "b" % "1.0.0" % "compile->runtime",
libraryDependencies += "a" % "b" % "1.0.0" % "compile->runtime2"
)
lazy val b = project dependsOn(a) settings(
commonSettings,
updateOptions := updateOptions.value.withCachedResolution(true), //comment this line to make ws compile
libraryDependencies += "a" % "b" % "1.0.1" % "compile->runtime"
)

View File

@ -0,0 +1,16 @@
<ivy-module xmlns:e="http://ant.apache.org/ivy/extra" version="2.0">
<info organisation="a" module="b" revision="1.0.0" status="release" publication="20160201120702">
<description>a</description>
</info>
<configurations>
<conf name="runtime" description="..."/>
<conf name="runtime2" description="..."/>
</configurations>
<publications>
<artifact name="b1.jar" type="jar" ext="jar" conf="runtime"/>
<artifact name="b2.jar" type="jar" ext="jar" conf="runtime"/>
<artifact name="b3.jar" type="jar" ext="jar" conf="runtime2"/>
</publications>
<dependencies>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,16 @@
<ivy-module xmlns:e="http://ant.apache.org/ivy/extra" version="2.0">
<info organisation="a" module="b" revision="1.0.1" status="release" publication="20160201120702">
<description>a</description>
</info>
<configurations>
<conf name="runtime" description="..."/>
<conf name="runtime2" description="..."/>
</configurations>
<publications>
<artifact name="b1.jar" type="jar" ext="jar" conf="runtime"/>
<artifact name="b2.jar" type="jar" ext="jar" conf="runtime"/>
<artifact name="b3.jar" type="jar" ext="jar" conf="runtime2"/>
</publications>
<dependencies>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,11 @@
# In this test, we have a project `a`, on which a project `b` depends.
# project `a` has a library dependency on:
# - "a" % "b" % "1.0.0" % "compile->runtime"
# - "a" % "b" % "1.0.0" % "compile->runtime2"
# project "b" depends on:
# - project `a`
# - "b" % "b" % "1.0.1" % "compile->runtime"
# "a" % "b" % "1.0.0" will be evicted in favor of "a" % "b" % "1.0.1", but we
# have to keep the dependency on the two configurations "runtime" and "runtime2".
# This test makes sure that we actually do.
> compile