Produce a BOM for Akka libraries (#29839)

This commit is contained in:
Ignasi Marimon-Clos 2020-11-30 16:39:14 +01:00 committed by GitHub
parent 78ffa91c4a
commit 12ca84c247
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 26 deletions

View file

@ -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)