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

import Dependencies._ import ReleaseTransformations._ import sbtversionpolicy.withsbtrelease.ReleaseVersion.fromAggregatedAssessedCompatibilityWithLatestRelease name := "targeting-client" lazy val root = (project in file(".")).aggregate( client_play_json28, client_play_json30, ).settings( publish / skip := true, sonatypeReleaseSettings ) val sonatypeReleaseSettings = Seq( releaseVersion := fromAggregatedAssessedCompatibilityWithLatestRelease().value, releaseProcess := Seq[ReleaseStep]( checkSnapshotDependencies, inquireVersions, runClean, setReleaseVersion, commitReleaseVersion, tagRelease, setNextVersion, commitNextVersion ) ) def clientWith(playJsonVersion: PlayJsonVersion) = Project(playJsonVersion.projectId, file(playJsonVersion.projectId)) .settings( licenses := Seq(License.Apache2), scalaVersion := "2.13.12", organization := "com.gu.targeting-client", scalacOptions ++= Seq("-feature", "-deprecation", "-release:11"), libraryDependencies ++= Seq( commonsIo, scalaTest, http, playJsonVersion.lib ) ) lazy val client_play_json28 = clientWith(PlayJsonVersion.V28) lazy val client_play_json30 = clientWith(PlayJsonVersion.V30)