in build.sbt [12:57]
def projectMaker(projectName: String) = Project(projectName, file(projectName))
.enablePlugins(RiffRaffArtifact)
.settings(
List(
name := projectName,
riffRaffManifestProjectName := s"Mobile::${name.value}"
) ++ commonAssemblySettings(projectName)
)
.dependsOn(common % "compile->compile")
.aggregate(common)
ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always
def commonAssemblySettings(module: String): immutable.Seq[Def.Setting[_]] =
commonSettings ++ List(
assemblyJarName := s"${name.value}.jar",
riffRaffPackageType := assembly.value,
riffRaffUploadArtifactBucket := Option("riffraff-artifact"),
riffRaffUploadManifestBucket := Option("riffraff-builds")
)
val commonSettings: immutable.Seq[Def.Setting[_]] = List(
fork := true, // was hitting deadlock, fxxund similar complaints online, disabling concurrency helps: https://github.com/sbt/sbt/issues/3022, https://github.com/mockito/mockito/issues/1067
resolvers ++= Resolver.sonatypeOssRepos("releases"),
libraryDependencies ++= Seq(
awsLambda,
awsDynamo,
awsLambdaLog,
awsJavaSdk,
jackson,
jacksonDataFormat,
jacksonJsrDataType,
commonsIo,
nettyHandler,
scanamo,
okHttp,
slf4jSimple,
identityAuthCore,
specsCore,
specsScalaCheck,
specsMock
),
ThisBuild / assemblyMergeStrategy := {
case "META-INF/MANIFEST.MF" => MergeStrategy.discard
case PathList(ps @ _*) if ps.last equalsIgnoreCase "Log4j2Plugins.dat" => sbtassembly.Log4j2MergeStrategy.plugincache
case _ => MergeStrategy.first
},