diff --git a/build.sbt b/build.sbt index 072bf528e1..fc6a223a34 100644 --- a/build.sbt +++ b/build.sbt @@ -57,13 +57,10 @@ resolverSettings def isScala213: Boolean = System.getProperty("akka.build.scalaVersion", "").startsWith("2.13") // When this is updated the set of modules in ActorSystem.allModules should also be updated -lazy val aggregatedProjects: Seq[ProjectReference] = List[ProjectReference]( +lazy val userProjects: Seq[ProjectReference] = List[ProjectReference]( actor, - actorTests, actorTestkitTyped, actorTyped, - actorTypedTests, - benchJmh, cluster, clusterMetrics, clusterSharding, @@ -73,30 +70,36 @@ lazy val aggregatedProjects: Seq[ProjectReference] = List[ProjectReference]( coordination, discovery, distributedData, - docs, jackson, multiNodeTestkit, osgi, persistence, persistenceQuery, - persistenceShared, - persistenceTck, persistenceTyped, - persistenceTypedTests, persistenceTestkit, protobuf, protobufV3, pki, remote, - remoteTests, slf4j, stream, streamTestkit, - streamTests, - streamTestsTck, streamTyped, testkit) +lazy val aggregatedProjects: Seq[ProjectReference] = userProjects ++ List[ProjectReference]( + actorTests, + actorTypedTests, + benchJmh, + docs, + billOfMaterials, + persistenceShared, + persistenceTck, + persistenceTypedTests, + remoteTests, + streamTests, + streamTestsTck) + lazy val root = Project(id = "akka", base = file(".")) .aggregate(aggregatedProjects: _*) .enablePlugins(PublishRsyncPlugin) @@ -350,8 +353,7 @@ lazy val protobufV3 = akkaModule("akka-protobuf-v3") .withConfigurations(Vector(Compile)), // prevent original dependency to be added to pom as runtime dep packagedArtifact in (Compile, packageBin) := Scoped.mkTuple2( (artifact in (Compile, packageBin)).value, - ReproducibleBuildsPlugin.postProcessJar(OsgiKeys.bundle.value) - ), + ReproducibleBuildsPlugin.postProcessJar(OsgiKeys.bundle.value)), packageBin in Compile := ReproducibleBuildsPlugin .postProcessJar((assembly in Compile).value), // package by running assembly // Prevent cyclic task dependencies, see https://github.com/sbt/sbt-assembly/issues/365 @@ -555,6 +557,17 @@ lazy val coordination = akkaModule("akka-coordination") .settings(AutomaticModuleName.settings("akka.coordination")) .settings(OSGi.coordination) +lazy val billOfMaterials = Project("akka-bill-of-materials", file("akka-bill-of-materials")) + .enablePlugins(BillOfMaterialsPlugin) + .disablePlugins(MimaPlugin, AkkaDisciplinePlugin) + // buildSettings and defaultSettings configure organization name, licenses, etc... + .settings(AkkaBuild.buildSettings) + .settings(AkkaBuild.defaultSettings) + .settings( + name := "akka-bom", + bomIncludeProjects := userProjects, + description := s"${description.value} (depending on Scala ${CrossVersion.binaryScalaVersion(scalaVersion.value)})") + def akkaModule(name: String): Project = Project(id = name, base = file(name)) .enablePlugins(ReproducibleBuildsPlugin) diff --git a/project/Publish.scala b/project/Publish.scala index ab9037ca65..cea5cf250d 100644 --- a/project/Publish.scala +++ b/project/Publish.scala @@ -17,30 +17,24 @@ object Publish extends AutoPlugin { override def trigger = allRequirements override lazy val projectSettings = Seq( - pomExtra := akkaPomExtra, publishTo := Some(akkaPublishTo.value), publishRsyncHost := "akkarepo@gustav.akka.io", credentials ++= akkaCredentials, organizationName := "Lightbend Inc.", organizationHomepage := Some(url("https://www.lightbend.com")), + startYear := Some(2009), + developers := List( + Developer( + "akka-contributors", + "Akka Contributors", + "akka.official@gmail.com", + url("https://github.com/akka/akka/graphs/contributors"))), publishMavenStyle := true, pomIncludeRepository := { x => false }, defaultPublishTo := target.value / "repository") - def akkaPomExtra = { - 2009 - - - akka-contributors - Akka Contributors - akka.official@gmail.com - https://github.com/akka/akka/graphs/contributors - - - } - private def akkaPublishTo = Def.setting { val key = new java.io.File( Option(System.getProperty("akka.gustav.key")) diff --git a/project/plugins.sbt b/project/plugins.sbt index 10e3736ed6..62fb42cd48 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -9,6 +9,7 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-multi-jvm" % "0.4.0") //#sbt-multi-jvm addSbtPlugin("com.lightbend.sbt" % "sbt-java-formatter" % "0.6.0") +addSbtPlugin("com.lightbend.sbt" % "sbt-bill-of-materials" % "1.0.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.2") addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.23") // sbt-osgi 0.9.5 is available but breaks including jdk9-only classes