From 2cac5a37351f4ec13c5b29d8bd292a7153762e87 Mon Sep 17 00:00:00 2001 From: Jean Helou Date: Mon, 25 Feb 2019 17:00:16 +0100 Subject: Provides additionnal dependency keys for easier configuration --- contrib/playlib/src/mill/playlib/Dependencies.scala | 19 ++++++++++++++----- contrib/playlib/src/mill/playlib/Server.scala | 14 ++++++++------ contrib/playlib/src/mill/playlib/Version.scala | 7 +++++++ .../test/src/mill/playlib/PlayModuleTests.scala | 19 ++++++++++++++++++- 4 files changed, 47 insertions(+), 12 deletions(-) (limited to 'contrib/playlib') diff --git a/contrib/playlib/src/mill/playlib/Dependencies.scala b/contrib/playlib/src/mill/playlib/Dependencies.scala index 2583ffbf..65a5f455 100644 --- a/contrib/playlib/src/mill/playlib/Dependencies.scala +++ b/contrib/playlib/src/mill/playlib/Dependencies.scala @@ -2,14 +2,23 @@ package mill package playlib import mill.scalalib._ -import mill.scalalib.api._ private [playlib] trait Dependencies extends ScalaModule with Version{ + def core = T { component("play") } + def guice = T { component("play-guice") } + def server = T { component("play-server") } + def logback = T { component("play-logback") } + def evolutions = T { component("play-jdbc-evolutions") } + def jdbc = T { component("play-jdbc") } + def filters = T { component("filters-helpers") } + def ws = T { component("play-ahc-ws") } + def caffeine = T { component("play-caffeine-cache") } + override def ivyDeps = T{ super.ivyDeps() ++ Agg( - ivy"com.typesafe.play::play:${playVersion()}", - ivy"com.typesafe.play::play-guice:${playVersion()}", - ivy"com.typesafe.play::play-server:${playVersion()}", - ivy"com.typesafe.play::play-logback:${playVersion()}" + core(), + guice(), + server(), + logback() )} } diff --git a/contrib/playlib/src/mill/playlib/Server.scala b/contrib/playlib/src/mill/playlib/Server.scala index f41c41d7..0b7b086a 100644 --- a/contrib/playlib/src/mill/playlib/Server.scala +++ b/contrib/playlib/src/mill/playlib/Server.scala @@ -4,17 +4,19 @@ package playlib import mill.scalalib._ private[playlib] trait Server extends ScalaModule with Version { - def playServerProvider = T { - ivy"com.typesafe.play::play-akka-http-server:${playVersion()}" - } + + def nettyServer = T { component("play-netty-server") } + + def akkaHttpServer = T { component("play-akka-http-server") } + + def playServerProvider = T { akkaHttpServer() } + override def runIvyDeps = T { super.runIvyDeps() ++ Agg(playServerProvider()) } - override def mainClass = T { - Some("play.core.server.ProdServerStart") - } + override def mainClass = T { Some("play.core.server.ProdServerStart") } } diff --git a/contrib/playlib/src/mill/playlib/Version.scala b/contrib/playlib/src/mill/playlib/Version.scala index 77e57886..ae441a8a 100644 --- a/contrib/playlib/src/mill/playlib/Version.scala +++ b/contrib/playlib/src/mill/playlib/Version.scala @@ -1,6 +1,9 @@ package mill package playlib +import mill.define.{Target, Task} +import mill.scalalib._ + private[playlib] trait Version extends Module{ def playVersion: T[String] @@ -8,4 +11,8 @@ private[playlib] trait Version extends Module{ private[playlib] def playMinorVersion: T[String] = T { playVersion().split("\\.").take(2).mkString("", ".", ".0") } + + private[playlib] def component(id: String): Task[Dep] = T.task { + ivy"com.typesafe.play::$id::${playVersion()}" + } } diff --git a/contrib/playlib/test/src/mill/playlib/PlayModuleTests.scala b/contrib/playlib/test/src/mill/playlib/PlayModuleTests.scala index a04df0bc..398634ce 100644 --- a/contrib/playlib/test/src/mill/playlib/PlayModuleTests.scala +++ b/contrib/playlib/test/src/mill/playlib/PlayModuleTests.scala @@ -14,7 +14,7 @@ object PlayModuleTests extends TestSuite { override def twirlVersion = T{"1.4.0"} override def scalaVersion = T{"2.12.8"} object test extends PlayTests - + override def ivyDeps = T { super.ivyDeps() ++ Agg(ws())} } } @@ -59,6 +59,23 @@ object PlayModuleTests extends TestSuite { ) } } + 'dependencies - { + 'fromBuild - workspaceTest(playmulti) { eval => + val Right((deps, evalCount)) = eval.apply(playmulti.core.ivyDeps) + val expectedModules = Seq[String]( + "play", + "play-guice", + "play-server", + "play-logback", + "play-ahc-ws" + ) + val outputModules = deps.map(_.dep.module.name) + assert( + outputModules.forall(expectedModules.contains), + evalCount > 0 + ) + } + } 'compile - workspaceTest(playmulti) { eval => val eitherResult = eval.apply(playmulti.core.compile) val Right((result, evalCount)) = eitherResult -- cgit v1.2.3