You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gearpump.apache.org by ma...@apache.org on 2016/10/10 04:42:25 UTC
incubator-gearpump git commit: [GEARPUMP-218] add shaded library as
transitive dependencies
Repository: incubator-gearpump
Updated Branches:
refs/heads/master 66017ab7b -> 9b879456d
[GEARPUMP-218] add shaded library as transitive dependencies
Author: manuzhang <ow...@gmail.com>
Closes #92 from manuzhang/add_shaded_pom.
Project: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/commit/9b879456
Tree: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/tree/9b879456
Diff: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/diff/9b879456
Branch: refs/heads/master
Commit: 9b879456d6ff03e961aca97857903082be189084
Parents: 66017ab
Author: manuzhang <ow...@gmail.com>
Authored: Mon Oct 10 12:42:16 2016 +0800
Committer: manuzhang <ow...@gmail.com>
Committed: Mon Oct 10 12:42:16 2016 +0800
----------------------------------------------------------------------
project/Build.scala | 50 +++++++++++-----
project/BuildShaded.scala | 127 ++++++++++++++++++++++-------------------
2 files changed, 104 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/9b879456/project/Build.scala
----------------------------------------------------------------------
diff --git a/project/Build.scala b/project/Build.scala
index 17e78df..fe8ec61 100644
--- a/project/Build.scala
+++ b/project/Build.scala
@@ -150,12 +150,6 @@ object Build extends sbt.Build {
)
)
- val streamingDependencies = Seq(
- unmanagedJars in Compile ++= Seq(
- getShadedJarFile("gs-collections", version.value)
- )
- )
-
val coreDependencies = Seq(
libraryDependencies ++= Seq(
"org.slf4j" % "slf4j-api" % slf4jVersion,
@@ -194,9 +188,9 @@ object Build extends sbt.Build {
),
unmanagedJars in Compile ++= Seq(
- getShadedJarFile("metrics-graphite", version.value),
- getShadedJarFile("guava", version.value),
- getShadedJarFile("akka-kryo", version.value)
+ getShadedJarFile(shaded_metrics_graphite.id, version.value),
+ getShadedJarFile(shaded_guava.id, version.value),
+ getShadedJarFile(shaded_akka_kryo.id, version.value)
)
)
@@ -245,6 +239,20 @@ object Build extends sbt.Build {
.map(_.filterNot(_.getCanonicalPath.contains("akka")))
}
+ private def addShadedDeps(deps: Seq[xml.Node], node: xml.Node): xml.Node = {
+ node match {
+ case elem: xml.Elem =>
+ val child = if (elem.label == "dependencies") {
+ elem.child ++ deps
+ } else {
+ elem.child.map(addShadedDeps(deps, _))
+ }
+ xml.Elem(elem.prefix, elem.label, elem.attributes, elem.scope, false, child: _*)
+ case _ =>
+ node
+ }
+ }
+
lazy val root = Project(
id = "gearpump",
base = file("."),
@@ -257,7 +265,14 @@ object Build extends sbt.Build {
lazy val core = Project(
id = "gearpump-core",
base = file("core"),
- settings = commonSettings ++ javadocSettings ++ coreDependencies)
+ settings = commonSettings ++ javadocSettings ++ coreDependencies ++ Seq(
+ pomPostProcess := {
+ (node: xml.Node) => addShadedDeps(List(
+ getShadedDepXML(organization.value, shaded_akka_kryo.id, version.value),
+ getShadedDepXML(organization.value, shaded_guava.id, version.value),
+ getShadedDepXML(organization.value, shaded_metrics_graphite.id, version.value)), node)
+ }
+ ))
.disablePlugins(sbtassembly.AssemblyPlugin)
lazy val daemon = Project(
@@ -277,9 +292,18 @@ object Build extends sbt.Build {
lazy val streaming = Project(
id = "gearpump-streaming",
base = file("streaming"),
- settings = commonSettings ++ javadocSettings ++ streamingDependencies)
- .dependsOn(core % "test->test; compile->compile", daemon % "test->test")
- .disablePlugins(sbtassembly.AssemblyPlugin)
+ settings = commonSettings ++ javadocSettings ++ Seq(
+ unmanagedJars in Compile ++= Seq(
+ getShadedJarFile(shaded_gs_collections.id, version.value)
+ ),
+
+ pomPostProcess := {
+ (node: xml.Node) => addShadedDeps(List(
+ getShadedDepXML(organization.value, shaded_gs_collections.id, version.value)), node)
+ }
+ ))
+ .dependsOn(core % "test->test; compile->compile", shaded_gs_collections, daemon % "test->test")
+ .disablePlugins(sbtassembly.AssemblyPlugin)
lazy val external_kafka = Project(
id = "gearpump-external-kafka",
http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/9b879456/project/BuildShaded.scala
----------------------------------------------------------------------
diff --git a/project/BuildShaded.scala b/project/BuildShaded.scala
index 1f59bfd..a43587c 100644
--- a/project/BuildShaded.scala
+++ b/project/BuildShaded.scala
@@ -35,7 +35,7 @@ object BuildShaded extends sbt.Build {
_.copy(includeScala = false)
},
assemblyJarName in assembly := {
- s"${name.value}-$scalaVersionMajor-${version.value}-assembly.jar"
+ s"${name.value}_$scalaVersionMajor-${version.value}.jar"
},
target in assembly := baseDirectory.value.getParentFile / "target" / scalaVersionMajor
)
@@ -44,92 +44,99 @@ object BuildShaded extends sbt.Build {
id = "gearpump-shaded",
base = file("shaded")
).aggregate(shaded_akka_kryo, shaded_gs_collections, shaded_guava, shaded_metrics_graphite)
- .disablePlugins(sbtassembly.AssemblyPlugin)
-
+ .disablePlugins(sbtassembly.AssemblyPlugin)
lazy val shaded_akka_kryo = Project(
id = "gearpump-shaded-akka-kryo",
base = file("shaded/akka-kryo"),
- settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-akka-kryo",
- "assembly"), sbtassembly.AssemblyKeys.assembly) ++
- Seq(
- assemblyShadeRules in assembly := Seq(
- ShadeRule.zap("com.google.protobuf.**").inAll,
- ShadeRule.zap("com.typesafe.config.**").inAll,
- ShadeRule.zap("akka.**").inAll,
- ShadeRule.zap("org.jboss.netty.**").inAll,
- ShadeRule.zap("net.jpountz.lz4.**").inAll,
- ShadeRule.zap("org.uncommons.maths.**").inAll,
- ShadeRule.rename("com.romix.**" -> "org.apache.gearpump.romix.@1").inAll,
- ShadeRule.rename("com.esotericsoftware.**" ->
- "org.apache.gearpump.esotericsoftware.@1").inAll,
- ShadeRule.rename("org.objenesis.**" -> "org.apache.gearpump.objenesis.@1").inAll
- )
- ) ++
- Seq(
- libraryDependencies ++= Seq(
- "com.github.romix.akka" %% "akka-kryo-serialization" % kryoVersion
- )
+ settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-akka-kryo"),
+ sbtassembly.AssemblyKeys.assembly) ++
+ Seq(
+ assemblyShadeRules in assembly := Seq(
+ ShadeRule.zap("com.google.protobuf.**").inAll,
+ ShadeRule.zap("com.typesafe.config.**").inAll,
+ ShadeRule.zap("akka.**").inAll,
+ ShadeRule.zap("org.jboss.netty.**").inAll,
+ ShadeRule.zap("net.jpountz.lz4.**").inAll,
+ ShadeRule.zap("org.uncommons.maths.**").inAll,
+ ShadeRule.rename("com.romix.**" -> "org.apache.gearpump.romix.@1").inAll,
+ ShadeRule.rename("com.esotericsoftware.**" ->
+ "org.apache.gearpump.esotericsoftware.@1").inAll,
+ ShadeRule.rename("org.objenesis.**" -> "org.apache.gearpump.objenesis.@1").inAll
+ )
+ ) ++
+ Seq(
+ libraryDependencies ++= Seq(
+ "com.github.romix.akka" %% "akka-kryo-serialization" % kryoVersion
)
+ )
)
lazy val shaded_gs_collections = Project(
id = "gearpump-shaded-gs-collections",
base = file("shaded/gs-collections"),
- settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-gs-collections",
- "assembly"), sbtassembly.AssemblyKeys.assembly) ++
- Seq(
- assemblyShadeRules in assembly := Seq(
- ShadeRule.rename("com.gs.collections.**" ->
- "org.apache.gearpump.gs.collections.@1").inAll
- )
- ) ++
- Seq(
- libraryDependencies ++= Seq(
- "com.goldmansachs" % "gs-collections" % gsCollectionsVersion
- )
+ settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-gs-collections"),
+ sbtassembly.AssemblyKeys.assembly) ++
+ Seq(
+ assemblyShadeRules in assembly := Seq(
+ ShadeRule.rename("com.gs.collections.**" ->
+ "org.apache.gearpump.gs.collections.@1").inAll
)
+ ) ++
+ Seq(
+ libraryDependencies ++= Seq(
+ "com.goldmansachs" % "gs-collections" % gsCollectionsVersion
+ )
+ )
)
lazy val shaded_guava = Project(
id = "gearpump-shaded-guava",
base = file("shaded/guava"),
- settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-guava",
- "assembly"), sbtassembly.AssemblyKeys.assembly) ++
- Seq(
- assemblyShadeRules in assembly := Seq(
- ShadeRule.rename("com.google.**" -> "org.apache.gearpump.google.@1").inAll
- )
- ) ++
- Seq(
- libraryDependencies ++= Seq(
- "com.google.guava" % "guava" % guavaVersion
- )
+ settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-guava"),
+ sbtassembly.AssemblyKeys.assembly) ++
+ Seq(
+ assemblyShadeRules in assembly := Seq(
+ ShadeRule.rename("com.google.**" -> "org.apache.gearpump.google.@1").inAll
+ )
+ ) ++
+ Seq(
+ libraryDependencies ++= Seq(
+ "com.google.guava" % "guava" % guavaVersion
)
+ )
)
lazy val shaded_metrics_graphite = Project(
id = "gearpump-shaded-metrics-graphite",
base = file("shaded/metrics-graphite"),
- settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-metrics-graphite",
- "assembly"), sbtassembly.AssemblyKeys.assembly) ++
- Seq(
- assemblyShadeRules in assembly := Seq(
- ShadeRule.rename("com.codahale.metrics.**" ->
- "org.apache.gearpump.codahale.metrics.@1").inAll
- )
- ) ++
- Seq(
- libraryDependencies ++= Seq(
- "com.codahale.metrics" % "metrics-graphite" % codahaleVersion,
- "com.codahale.metrics" % "metrics-jvm" % codahaleVersion
- )
+ settings = shadeAssemblySettings ++ addArtifact(Artifact("gearpump-shaded-metrics-graphite"),
+ sbtassembly.AssemblyKeys.assembly) ++
+ Seq(
+ assemblyShadeRules in assembly := Seq(
+ ShadeRule.rename("com.codahale.metrics.**" ->
+ "org.apache.gearpump.codahale.metrics.@1").inAll
)
+ ) ++
+ Seq(
+ libraryDependencies ++= Seq(
+ "com.codahale.metrics" % "metrics-graphite" % codahaleVersion,
+ "com.codahale.metrics" % "metrics-jvm" % codahaleVersion
+ )
+ )
)
def getShadedJarFile(name: String, gearpumpVersion: String): File = {
shaded.base / "target" / scalaVersionMajor /
- s"gearpump-shaded-$name-$scalaVersionMajor-$gearpumpVersion-assembly.jar"
+ s"${name}_$scalaVersionMajor-$gearpumpVersion.jar"
+ }
+
+ def getShadedDepXML(groupId: String, artifactId: String, version: String): scala.xml.Node = {
+ <dependency>
+ <groupId>{groupId}</groupId>
+ <artifactId>{artifactId}</artifactId>
+ <version>{version}</version>
+ </dependency>
}
}
\ No newline at end of file