diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2019-03-18 13:44:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-18 13:44:50 +0100 |
commit | 8efb3b408a876a3dfdac79580773279125cb4135 (patch) | |
tree | 96fd746fc13f4ffb914d8e59c4ea074513877556 /build.sbt | |
parent | e311df4b3a272f4f160857f718a96ec316a2fc06 (diff) | |
parent | ec83a72879378bc9eedea24f828e4d30fed95e92 (diff) | |
download | Kamon-8efb3b408a876a3dfdac79580773279125cb4135.tar.gz Kamon-8efb3b408a876a3dfdac79580773279125cb4135.tar.bz2 Kamon-8efb3b408a876a3dfdac79580773279125cb4135.zip |
Merge pull request #569 from ivantopo/status-page
Status page
Diffstat (limited to 'build.sbt')
-rw-r--r-- | build.sbt | 60 |
1 files changed, 52 insertions, 8 deletions
@@ -1,3 +1,6 @@ +import scala.xml.Node +import scala.xml.transform.{RewriteRule, RuleTransformer} + /* ========================================================================================= * Copyright © 2013-2018 the kamon project <http://kamon.io/> * @@ -17,7 +20,7 @@ lazy val kamon = (project in file(".")) .settings(moduleName := "kamon") .settings(noPublishing: _*) - .aggregate(core, testkit, coreTests, coreBench) + .aggregate(core, statusPage, testkit, coreTests, coreBench) val commonSettings = Seq( scalaVersion := "2.12.6", @@ -37,18 +40,49 @@ val commonSettings = Seq( case Some((2,11)) => Seq("-Ybackend:GenBCode","-Ydelambdafy:method","-target:jvm-1.8") case Some((2,12)) => Seq("-opt:l:method") case _ => Seq.empty - }) + }), + assembleArtifact in assemblyPackageScala := false, + assemblyShadeRules in assembly := Seq( + ShadeRule.rename("org.HdrHistogram.**" -> "kamon.lib.@0").inAll, + ShadeRule.rename("com.grack.nanojson.**" -> "kamon.lib.@0").inAll, + ShadeRule.rename("org.jctools.**" -> "kamon.lib.@0").inAll, + ShadeRule.rename("fi.iki.elonen.**" -> "kamon.lib.@0").inAll, + ), + assemblyExcludedJars in assembly := { + val cp = (fullClasspath in assembly).value + val excludedPackages = Seq("slf4j-api", "config") + cp filter { file => excludedPackages.exists(file.data.getName.startsWith(_))} + }, + packageBin in Compile := assembly.value, + assemblyJarName in assembly := s"${moduleName.value}_${scalaBinaryVersion.value}-${version.value}.jar", + pomPostProcess := { originalPom => { + val shadedGroups = Seq("org.hdrhistogram", "org.jctools", "org.nanohttpd", "com.grack") + val filterShadedDependencies = new RuleTransformer(new RewriteRule { + override def transform(n: Node): Seq[Node] = { + if(n.label == "dependency") { + val group = (n \ "groupId").text + if (shadedGroups.find(eo => eo.equalsIgnoreCase(group)).nonEmpty) Seq.empty else n + } else n + } + }) + + filterShadedDependencies(originalPom) + }} ) lazy val core = (project in file("kamon-core")) - .settings(moduleName := "kamon-core") + .enablePlugins(BuildInfoPlugin) + .enablePlugins(AssemblyPlugin) .settings(commonSettings: _*) + .settings(moduleName := "kamon-core") .settings( + buildInfoKeys := Seq[BuildInfoKey](version), + buildInfoPackage := "kamon.status", libraryDependencies ++= Seq( - "com.typesafe" % "config" % "1.3.1", - "org.hdrhistogram" % "HdrHistogram" % "2.1.9", - "org.jctools" % "jctools-core" % "2.1.1", - "org.slf4j" % "slf4j-api" % "1.7.25" + "com.typesafe" % "config" % "1.3.1", + "org.hdrhistogram" % "HdrHistogram" % "2.1.9", + "org.jctools" % "jctools-core" % "2.1.1", + "org.slf4j" % "slf4j-api" % "1.7.25" ) ) @@ -61,6 +95,16 @@ lazy val testkit = (project in file("kamon-testkit")) ) ).dependsOn(core) +lazy val statusPage = (project in file("kamon-status-page")) + .settings(moduleName := "kamon-status-page") + .settings(commonSettings: _*) + .settings( + libraryDependencies ++= Seq( + "org.nanohttpd" % "nanohttpd" % "2.3.1", + "com.grack" % "nanojson" % "1.1" + ) + ).dependsOn(core) + lazy val coreTests = (project in file("kamon-core-tests")) .settings( @@ -72,7 +116,7 @@ lazy val coreTests = (project in file("kamon-core-tests")) .settings( libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "3.0.1" % "test", - "ch.qos.logback" % "logback-classic" % "1.2.2" % "test" + "ch.qos.logback" % "logback-classic" % "1.2.3" % "test" ) ).dependsOn(testkit) |