Trying to reproduce #641/#1676

This commit is contained in:
Eugene Yokota 2015-06-23 23:41:51 -04:00
parent 01f1627702
commit b1aa263b7f
9 changed files with 82 additions and 0 deletions

View File

@ -0,0 +1,44 @@
def customIvyPaths: Seq[Def.Setting[_]] = Seq(
ivyPaths := new IvyPaths((baseDirectory in ThisBuild).value, Some((baseDirectory in ThisBuild).value / "ivy-cache"))
)
lazy val packageTests = taskKey[File]("package tests")
lazy val common = project.
settings(customIvyPaths: _*).
settings(
organization := "com.badexample",
name := "badexample",
version := "1.0-SNAPSHOT",
publishTo := {
val p = ivyPaths.value.ivyHome.get
Some(Resolver.file("maven-share-publish", p / "shared").mavenStyle())
},
crossVersion := CrossVersion.Disabled,
publishMavenStyle := true,
packageTests in Compile := (packageBin in Test).value,
artifact in (Compile, packageTests) := Artifact(name.value, "tests"),
addArtifact(artifact in (Compile, packageTests), packageTests in Compile)
)
lazy val dependent = project.
settings(customIvyPaths: _*).
settings(
// sharedResolver didn't work.
resolvers += {
val p = ivyPaths.value.ivyHome.get
new MavenRepository("maven-share", p.toURL.toString + "/shared")
},
// Ignore the inter-project resolver, so we force to look remotely.
fullResolvers := fullResolvers.value.filterNot(_==projectResolver.value),
libraryDependencies += "com.badexample" % "badexample" % "1.0-SNAPSHOT" classifier("tests"),
libraryDependencies += "com.badexample" % "badexample" % "1.0-SNAPSHOT"
// updateOptions := updateOptions.value.withLatestSnapshots(true)
)
TaskKey[Unit]("dumpResolvers") := {
streams.value.log.info(s" -- dependent/fullResolvers -- ")
(fullResolvers in dependent).value foreach { r =>
streams.value.log.info(s" * ${r}")
}
}

View File

@ -0,0 +1,3 @@
object Common {
def name = "common"
}

View File

@ -0,0 +1,3 @@
object Test {
def name = "test"
}

View File

@ -0,0 +1,4 @@
object User {
println(Common.name)
println(Test.name)
}

View File

@ -0,0 +1,19 @@
# Validate that a bad dependency fails the compile
$ copy-file changes/BadCommon.scala common/src/main/scala/Common.scala
$ copy-file changes/BadTest.scala common/src/test/scala/Test.scala
> common/publish
# Force dep resolution to be successful, then compilation to fail
> dependent/update
-> dependent/compile
# Push new good change.
$ copy-file changes/GoodCommon.scala common/src/main/scala/Common.scala
$ copy-file changes/GoodTest.scala common/src/test/scala/Test.scala
# Sleep to ensure timestamp change
$ sleep 1000
> common/publish
# This should compile now.
> dependent/update
> dependent/compile