build.sbt (58 lines of code) (raw):
import com.typesafe.sbt.packager.debian.DebianPlugin.autoImport.Debian
name := "amiable"
version := "1.0-SNAPSHOT"
enablePlugins(PlayScala, JDebPackaging, SystemdPlugin)
ThisBuild / scalaVersion := "3.3.5"
Universal / javaOptions ++= Seq(
"-Dpidfile.path=/dev/null",
s"-Dconfig.file=/etc/${name.value}.conf",
"-J-XX:MaxRAMFraction=2",
"-J-XX:InitialRAMFraction=2",
"-J-XX:MaxMetaspaceSize=300m",
"-J-Xlog:gc*",
s"-J-Xloggc:/var/log/${packageName.value}/gc.log"
)
Test / javaOptions += "-Dconfig.file=conf/application.test.conf"
routesGenerator := InjectedRoutesGenerator
scalacOptions := Seq(
"-unchecked",
"-deprecation",
"-Xcheckinit",
"-feature",
"-nowarn",
"-Ywarn-unused"
)
// https://github.com/orgs/playframework/discussions/11222
// Ensure all Jackson versions used by Amiable are identical. Jackson will throw an error if the versions do not match.
val jacksonVersion = "2.19.0"
val jacksonOverrides = Seq(
"com.fasterxml.jackson.core" % "jackson-core",
"com.fasterxml.jackson.core" % "jackson-annotations",
"com.fasterxml.jackson.core" % "jackson-databind",
"com.fasterxml.jackson.datatype" % "jackson-datatype-jdk8",
"com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310",
"com.fasterxml.jackson.dataformat" % "jackson-dataformat-cbor",
"com.fasterxml.jackson.module" % "jackson-module-parameter-names",
"com.fasterxml.jackson.module" %% "jackson-module-scala"
).map(_ % jacksonVersion)
val awsSdkVersion = "1.12.783"
libraryDependencies ++= Seq(
jdbc,
ehcache,
ws,
"com.amazonaws" % "aws-java-sdk-cloudwatch" % awsSdkVersion,
"com.amazonaws" % "aws-java-sdk-ses" % awsSdkVersion,
"com.google.code.gson" % "gson" % "2.13.1",
"com.gu.play-googleauth" %% "play-v30" % "23.0.0",
"org.quartz-scheduler" % "quartz" % "2.5.0",
"org.playframework" %% "play-json-joda" % "3.0.4",
"org.scalatest" %% "scalatest" % "3.2.19" % Test,
"org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % Test,
"org.mockito" % "mockito-core" % "5.17.0" % Test,
"net.logstash.logback" % "logstash-logback-encoder" % "7.3", // scala-steward:off
// Transient dependency of Play. No newer version of Play with this vulnerability fixed.
"ch.qos.logback" % "logback-classic" % "1.5.18"
) ++ jacksonOverrides
PlayKeys.playDefaultPort := 9101
Universal / packageName := name.value
maintainer := "Guardian Developers <dig.dev.software@theguardian.com>"
packageSummary := "AMIable"
packageDescription := "Web app for monitoring the use of AMIs"
debianPackageDependencies := Seq("java-11-amazon-corretto-jdk:arm64")