build.sbt (49 lines of code) (raw):

import sbt._ import Keys._ val awsSdkVersion = "1.12.771" val okHttpVersion = "4.12.0" val capiClientVersion = "31.0.2" val circeVersion = "0.14.5" val apacheThriftVersion = "0.20.0" val scroogeVersion = "22.12.0" val thriftSerializerVersion = "5.0.7" val root = Project("most-viewed-video-uploader", file(".")) .settings( scalacOptions += "-deprecation", libraryDependencies ++= Seq( "com.amazonaws" % "aws-lambda-java-core" % "1.2.3", "com.amazonaws" % "aws-java-sdk-s3" % awsSdkVersion, "com.amazonaws" % "aws-java-sdk-kinesis" % awsSdkVersion, "com.squareup.okhttp3" % "okhttp" % okHttpVersion, "com.gu" %% "content-api-client-default" % capiClientVersion, "io.circe" %% "circe-generic" % circeVersion, "io.circe" %% "circe-parser" % circeVersion, "org.apache.thrift" % "libthrift" % apacheThriftVersion, "com.twitter" %% "scrooge-core" % scroogeVersion, "com.gu" %% "thrift-serializer" % thriftSerializerVersion, "org.scalatest" %% "scalatest" % "3.2.15" % "test" ), assemblyJarName := "most-viewed-video-uploader.jar" ) .settings(basicSettings) .settings( assembly / assemblyMergeStrategy := { case PathList("com", "gu", "storypackage", _*) => MergeStrategy.first case "shared.thrift" => MergeStrategy.first case "module-info.class" => MergeStrategy.first case PathList("META-INF", "versions", "9", "module-info.class") => MergeStrategy.first case PathList("mozilla", "public-suffix-list.txt") => MergeStrategy.filterDistinctLines case PathList("META-INF", "okio.kotlin_module") => MergeStrategy.preferProject case "BUILD" => MergeStrategy.first case x => val oldStrategy = (assembly / assemblyMergeStrategy).value oldStrategy(x) } ) Test / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-u", sys.env.getOrElse("SBT_JUNIT_OUTPUT", "junit"), "-o") lazy val basicSettings = Seq( organization := "com.gu", description := "AWS Lambda for uploading most viewed video data to CAPI.", scalaVersion := "2.13.14", scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked") )