build.sbt (65 lines of code) (raw):
import sbtassembly.MergeStrategy
def commonSettings(module: String) = List(
name := s"football-time-machine-$module",
organization := "com.gu",
description:= "Stores pa feed on s3 to replay them later",
version := "1.0",
scalaVersion := "2.13.16",
scalacOptions ++= Seq(
"-deprecation",
"-encoding", "UTF-8",
"-release:21",
"-Ywarn-dead-code"
),
assembly / assemblyMergeStrategy := {
case "META-INF/MANIFEST.MF" => MergeStrategy.discard
case _ => MergeStrategy.first
},
Compile / packageDoc / publishArtifact := false,
assemblyJarName := s"${name.value}.jar"
)
val awsSdk2Version = "2.31.27"
val jacksonCore = "com.fasterxml.jackson.core" % "jackson-core" % "2.18.3"
val jacksonDatabind = "com.fasterxml.jackson.core" % "jackson-databind" % "2.18.3"
lazy val archive = project
.settings(commonSettings("archive"))
.settings(
resolvers ++= Seq(
"Guardian GitHub Releases" at "https://guardian.github.com/maven/repo-releases",
"Guardian GitHub Snapshots" at "https://guardian.github.com/maven/repo-snapshots"
),
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-lambda-java-core" % "1.2.3",
"com.gu" %% "pa-client" % "7.0.12",
"com.gu" %% "simple-configuration-ssm" % "5.1.0",
"software.amazon.awssdk" % "autoscaling" % awsSdk2Version,
"software.amazon.awssdk" % "ec2" % awsSdk2Version,
"software.amazon.awssdk" % "ssm" % awsSdk2Version,
"software.amazon.awssdk" % "s3" % awsSdk2Version,
"com.typesafe" % "config" % "1.4.3",
"ch.qos.logback" % "logback-classic" % "1.5.18",
"io.netty" % "netty-codec-http" % "4.2.0.Final",
"io.netty" % "netty-common" % "4.2.0.Final",
jacksonCore,
jacksonDatabind
)
)
lazy val api = project
.settings(commonSettings("api"))
.settings(
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-lambda-java-core" % "1.2.3",
"software.amazon.awssdk" % "s3" % awsSdk2Version,
"com.typesafe" % "config" % "1.4.3",
jacksonCore,
jacksonDatabind
)
)
lazy val download = project.settings(
libraryDependencies ++= Seq(
"software.amazon.awssdk" % "s3" % awsSdk2Version,
jacksonCore,
jacksonDatabind
)
)
lazy val root = project.in(file(".")).aggregate(archive, api)