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

/* * Licensed to the Apache Software Foundation (ASF) under one or more * license agreements; and to You under the Apache License, version 2.0: * * https://www.apache.org/licenses/LICENSE-2.0 * * This file is part of the Apache Pekko project, which was derived from Akka. */ import net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin.reproducibleBuildsCheckResolver import com.typesafe.tools.mima.core.{ Problem, ProblemFilters } import ProjectSettings.commonSettings ThisBuild / resolvers ++= ResolverSettings.projectResolvers ThisBuild / apacheSonatypeProjectProfile := "pekko" sourceDistName := "apache-pekko-connectors-kafka" sourceDistIncubating := true commands := commands.value.filterNot { command => command.nameOption.exists { name => name.contains("sonatypeRelease") || name.contains("sonatypeBundleRelease") } } ThisBuild / reproducibleBuildsCheckResolver := "Apache Pekko Staging".at("https://repository.apache.org/content/groups/staging/") addCommandAlias("verifyCodeStyle", "scalafmtCheckAll; scalafmtSbtCheck; +headerCheckAll; javafmtCheckAll") addCommandAlias("applyCodeStyle", "+headerCreateAll; scalafmtAll; scalafmtSbt; javafmtAll") addCommandAlias("verifyDocs", ";+doc ;unidoc ;docs/paradoxBrowse") lazy val `pekko-connectors-kafka` = project .in(file(".")) .enablePlugins(ScalaUnidocPlugin) .disablePlugins(SitePlugin, MimaPlugin) .settings(commonSettings) .settings( name := "pekko-connectors-kafka-root", publish / skip := true, ScalaUnidoc / unidoc / unidocProjectFilter := inProjects(core, testkit, `cluster-sharding`), onLoadMessage := ProjectSettings.onLoadMessage) .aggregate(core, testkit, `cluster-sharding`, tests, `java-tests`, benchmarks, docs) lazy val core = project .enablePlugins(ReproducibleBuildsPlugin) .disablePlugins(SitePlugin) .settings(commonSettings) .settings(VersionGenerator.settings) .settings( name := "pekko-connectors-kafka", AutomaticModuleName.settings("org.apache.pekko.kafka"), libraryDependencies ++= Dependencies.coreDependencies, mimaPreviousArtifacts := Set.empty, // temporarily disable mima checks mimaBinaryIssueFilters += ProblemFilters.exclude[Problem]("org.apache.pekko.kafka.internal.*")) lazy val testkit = project .dependsOn(core) .enablePlugins(ReproducibleBuildsPlugin) .disablePlugins(SitePlugin) .settings(commonSettings) .settings( name := "pekko-connectors-kafka-testkit", AutomaticModuleName.settings("org.apache.pekko.kafka.testkit"), JupiterKeys.junitJupiterVersion := "5.8.2", libraryDependencies ++= Dependencies.testKitDependencies.value, libraryDependencies ++= Seq( "org.junit.jupiter" % "junit-jupiter-api" % JupiterKeys.junitJupiterVersion.value % Provided), mimaPreviousArtifacts := Set.empty, // temporarily disable mima checks mimaBinaryIssueFilters += ProblemFilters.exclude[Problem]("org.apache.pekko.kafka.testkit.internal.*")) lazy val `cluster-sharding` = project .in(file("./cluster-sharding")) .dependsOn(core) .enablePlugins(ReproducibleBuildsPlugin) .disablePlugins(SitePlugin) .settings(commonSettings) .settings( name := "pekko-connectors-kafka-cluster-sharding", AutomaticModuleName.settings("org.apache.pekko.kafka.cluster.sharding"), AddMetaInfLicenseFiles.clusterShardingSettings, libraryDependencies ++= Dependencies.clusterShardingDependencies, mimaPreviousArtifacts := Set.empty // temporarily disable mima checks ) lazy val tests = project .dependsOn(core, testkit, `cluster-sharding`) .disablePlugins(MimaPlugin, SitePlugin) .configs(IntegrationTest.extend(Test)) .settings(inConfig(IntegrationTest)(JavaFormatterPlugin.toBeScopedSettings)) .settings(commonSettings) .settings(Defaults.itSettings) .settings(headerSettings(IntegrationTest)) .settings( name := "pekko-connectors-kafka-tests", resolvers ++= ResolverSettings.testSpecificResolvers, libraryDependencies ++= Dependencies.testDependencies.value, publish / skip := true, Test / fork := true, Test / parallelExecution := false, IntegrationTest / parallelExecution := false) lazy val `java-tests` = project .dependsOn(core, testkit, `cluster-sharding`, tests % "compile->compile;test->test") .disablePlugins(MimaPlugin, SitePlugin) .settings(commonSettings) .settings( name := "pekko-connectors-kafka-java-tests", resolvers ++= ResolverSettings.testSpecificResolvers, libraryDependencies ++= Dependencies.testDependencies.value, libraryDependencies ++= Seq( "org.junit.vintage" % "junit-vintage-engine" % JupiterKeys.junitVintageVersion.value % Test, "net.aichler" % "jupiter-interface" % JupiterKeys.jupiterVersion.value % Test), publish / skip := true, Test / compileOrder := CompileOrder.ScalaThenJava, Test / fork := true, Test / parallelExecution := false, IntegrationTest / parallelExecution := false) lazy val docs = project .enablePlugins(ParadoxPlugin, PekkoParadoxPlugin, ParadoxSitePlugin, PreprocessPlugin) .disablePlugins(MimaPlugin) .settings(commonSettings) .settings( name := "Apache Pekko Kafka Connector", publish / skip := true, Compile / paradox / name := "Pekko", makeSite := makeSite.dependsOn(LocalRootProject / ScalaUnidoc / doc).value, previewPath := (Paradox / siteSubdirName).value, Preprocess / siteSubdirName := s"api/pekko-connectors-kafka/${projectInfoVersion.value}", Preprocess / sourceDirectory := (LocalRootProject / ScalaUnidoc / unidoc / target).value, Preprocess / preprocessRules := Seq( ("\\.java\\.scala".r, _ => ".java"), ("https://javadoc\\.io/page/".r, _ => "https://javadoc\\.io/static/"), // bug in Scaladoc ("https://docs\\.oracle\\.com/en/java/javase/11/docs/api/java.base/java/time/Duration\\$.html".r, _ => "https://docs\\.oracle\\.com/en/java/javase/11/docs/api/java.base/java/time/Duration.html"), // Add Java module name https://github.com/ThoughtWorksInc/sbt-api-mappings/issues/58 ("https://docs\\.oracle\\.com/en/java/javase/11/docs/api/".r, _ => "https://docs\\.oracle\\.com/en/java/javase/11/docs/api/")), Paradox / siteSubdirName := s"docs/pekko-connectors-kafka/${projectInfoVersion.value}", ParadoxSettings.settings, resolvers += Resolver.jcenterRepo) lazy val benchmarks = project .dependsOn(core, testkit) .disablePlugins(MimaPlugin, SitePlugin) .configs(IntegrationTest) .settings(inConfig(IntegrationTest)(JavaFormatterPlugin.toBeScopedSettings)) .settings(commonSettings) .settings(Defaults.itSettings) .settings(headerSettings(IntegrationTest)) .settings( name := "pekko-connectors-kafka-benchmarks", publish / skip := true, IntegrationTest / parallelExecution := false, libraryDependencies ++= Dependencies.benchmarkDependencies.value)