11name := " test-layer-groups-playframework"
2- organization := " com.example"
32
4- version := " 1.0-SNAPSHOT"
3+ ThisBuild / organization := " com.example"
4+ ThisBuild / version := " 1.0-SNAPSHOT"
5+ ThisBuild / scalaVersion := " 2.13.16"
56
6- lazy val root = (project in file(" ." )).enablePlugins(PlayScala )
7+ lazy val root = (project in file(" ." )).enablePlugins(PlayScala ).dependsOn(common)
78
8- scalaVersion := " 2.13.16"
9+ // a local project dependency
10+ lazy val common = project.settings(
11+ name := " test-layer-groups-playframework-common" ,
12+
13+ // a transitive dependency of the main project
14+ // (use any library as long as it's not already a Play dependency)
15+ libraryDependencies += " org.typelevel" %% " cats-core" % " 2.13.0"
16+ )
917
1018libraryDependencies += guice
1119libraryDependencies += " org.scalatestplus.play" %% " scalatestplus-play" % " 7.0.1" % Test
@@ -32,6 +40,7 @@ TaskKey[Unit]("checkDockerLayers") := {
3240 layer20.forall(_.file.getPath.startsWith(csrCacheDirectory.value.getPath)),
3341 " layer 20 should only contain external libraries"
3442 )
43+ assert(layer20.exists(_.file.name.contains(" cats-core" )), " layer 20 should contain the common project's dependencies" )
3544
3645 val layer30 = layers(Some (30 ))
3746 assert(layer30.exists(_.path == " /opt/docker/conf/application.ini" ), " layer 30 should contain application.ini" )
@@ -44,6 +53,10 @@ TaskKey[Unit]("checkDockerLayers") := {
4453 )
4554 assert(layer40.exists(_.file == PlayKeys .playPackageAssets.value), " layer 40 should contain Play's -assets.jar" )
4655 assert(layer40.exists(_.file == packageJavaLauncherJar.value), " layer 40 should contain launcher jar" )
56+ assert(
57+ layer40.exists(_.file == (common / Compile / packageBin).value),
58+ " layer 40 should contain the common project jar"
59+ )
4760 assert(
4861 layer40.exists(layer => makeBashScripts.value.map(_._1).contains(layer.file)),
4962 " layer 40 should contain start scripts"
0 commit comments