-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sc
60 lines (45 loc) · 1.33 KB
/
build.sc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import mill._
import mill.define.Target
import mill.scalalib._
import mill.util.Loose
val akkaActor2511 = ivy"com.typesafe.akka::akka-actor:2.5.11"
val akkaActor2510 = ivy"com.typesafe.akka::akka-actor:2.5.10"
val akkaActor259 = ivy"com.typesafe.akka::akka-actor:2.5.9"
val akkaStream259 = ivy"com.typesafe.akka::akka-stream:2.5.9"
trait BaseModule extends ScalaModule{
val scalaVersion = "2.12.4"
def expectedAkka: String
def validateDeps = T{
compileClasspath.map{ cp =>
val akkaDeps = cp.map(_.path.segments.last).filter(_.contains("akka-actor"))
if(akkaDeps == Agg(expectedAkka)){
println("OK")
}else{
sys.error(s"Expected $expectedAkka but found: $akkaDeps")
}
}
}
}
object sameWithin extends BaseModule {
val expectedAkka = "akka-actor_2.12-2.5.10.jar"
override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(
akkaActor259,
akkaActor2510
)
}
object sameTransitive extends BaseModule {
val expectedAkka = "akka-actor_2.12-2.5.10.jar"
override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(
akkaStream259,
akkaActor2510
)
}
object moduleTransitive extends BaseModule {
val expectedAkka = "akka-actor_2.12-2.5.11.jar"
override def moduleDeps = super.moduleDeps ++ Seq(
sameWithin
)
override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(
akkaActor2511
)
}