aboutsummaryrefslogtreecommitdiff
path: root/build.sbt
diff options
context:
space:
mode:
Diffstat (limited to 'build.sbt')
-rw-r--r--build.sbt38
1 files changed, 35 insertions, 3 deletions
diff --git a/build.sbt b/build.sbt
index b5b06ee5..5bd86895 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,3 +1,6 @@
+import scala.xml.Node
+import scala.xml.transform.{RewriteRule, RuleTransformer}
+
/* =========================================================================================
* Copyright © 2013-2018 the kamon project <http://kamon.io/>
*
@@ -42,8 +45,9 @@ val commonSettings = Seq(
lazy val core = (project in file("kamon-core"))
.enablePlugins(BuildInfoPlugin)
- .settings(moduleName := "kamon-core")
+ .enablePlugins(AssemblyPlugin)
.settings(commonSettings: _*)
+ .settings(moduleName := "kamon-core")
.settings(
buildInfoKeys := Seq[BuildInfoKey](version),
buildInfoPackage := "kamon.status",
@@ -51,10 +55,38 @@ lazy val core = (project in file("kamon-core"))
"com.typesafe" % "config" % "1.3.1",
"org.hdrhistogram" % "HdrHistogram" % "2.1.9",
"org.jctools" % "jctools-core" % "2.1.1",
- "org.nanohttpd" % "nanohttpd-nanolets" % "2.3.1",
+ "org.nanohttpd" % "nanohttpd" % "2.3.1",
"com.grack" % "nanojson" % "1.1",
"org.slf4j" % "slf4j-api" % "1.7.25"
- )
+ ),
+ 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 testkit = (project in file("kamon-testkit"))