set Assembly in build.sbt
plugins configured in plugins.sbt
logLevel := Level.Warn
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")
Configurations in build.sbt
import sbtassembly.MergeStrategy
import sbtassembly.PathList
import sbtassembly.AssemblyKeys
name := "jobs-consumer"
version := "1.0"
//for redis testing
resolvers += "rediscala" at "http://dl.bintray.com/etaty/maven"
//for solr-core testing
resolvers += "Restlet Repositories" at "http://maven.restlet.org"
//scalacOptions += "-feature"
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-java-sdk" % "1.10.6", //
"org.slf4j" % "slf4j-api" % "1.7.12", // MIT
"org.slf4j" % "slf4j-log4j12" % "1.7.12",
"com.typesafe" % "config" % "1.3.0",
"com.etaty.rediscala" %% "rediscala" % "1.4.2",
"org.msgpack" % "msgpack" % "0.6.12",
"org.apache.solr" % "solr-solrj" % "5.3.0",
"com.thoughtworks.xstream" % "xstream" % "1.4.8",
"commons-lang" % "commons-lang" % "2.6", //html escape
"org.joda" % "joda-convert" % "1.7",
"org.scalatest" %% "scalatest" % "2.2.0" % "test", // Apache v2
"org.mockito" % "mockito-all" % "1.9.5" % "test", // MIT
"com.orange.redis-embedded" % "embedded-redis" % "0.6" % "test",
"org.apache.solr" % "solr-core" % "5.3.0" % "test"
)
AssemblyKeys.assemblyMergeStrategy in AssemblyKeys.assembly := {
case PathList("javax", "servlet", xs @ _*) => MergeStrategy.first
case PathList("org", "xmlpull", "v1", xs @ _*) => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
case "application.conf" => MergeStrategy.concat
case "unwanted.txt" => MergeStrategy.discard
case x =>
val oldStrategy = (AssemblyKeys.assemblyMergeStrategy in AssemblyKeys.assembly).value
oldStrategy(x)
}
How to Build
> sbt clean update compile assembly
How to Run
> java -cp target/scala-2.10/packageName_2.10-1.0.jar com.sillycat.package.ClassConsumer
References:
http://sillycat.iteye.com/blog/2083193
https://github.com/sbt/sbt-assembly
plugins configured in plugins.sbt
logLevel := Level.Warn
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")
Configurations in build.sbt
import sbtassembly.MergeStrategy
import sbtassembly.PathList
import sbtassembly.AssemblyKeys
name := "jobs-consumer"
version := "1.0"
//for redis testing
resolvers += "rediscala" at "http://dl.bintray.com/etaty/maven"
//for solr-core testing
resolvers += "Restlet Repositories" at "http://maven.restlet.org"
//scalacOptions += "-feature"
libraryDependencies ++= Seq(
"com.amazonaws" % "aws-java-sdk" % "1.10.6", //
"org.slf4j" % "slf4j-api" % "1.7.12", // MIT
"org.slf4j" % "slf4j-log4j12" % "1.7.12",
"com.typesafe" % "config" % "1.3.0",
"com.etaty.rediscala" %% "rediscala" % "1.4.2",
"org.msgpack" % "msgpack" % "0.6.12",
"org.apache.solr" % "solr-solrj" % "5.3.0",
"com.thoughtworks.xstream" % "xstream" % "1.4.8",
"commons-lang" % "commons-lang" % "2.6", //html escape
"org.joda" % "joda-convert" % "1.7",
"org.scalatest" %% "scalatest" % "2.2.0" % "test", // Apache v2
"org.mockito" % "mockito-all" % "1.9.5" % "test", // MIT
"com.orange.redis-embedded" % "embedded-redis" % "0.6" % "test",
"org.apache.solr" % "solr-core" % "5.3.0" % "test"
)
AssemblyKeys.assemblyMergeStrategy in AssemblyKeys.assembly := {
case PathList("javax", "servlet", xs @ _*) => MergeStrategy.first
case PathList("org", "xmlpull", "v1", xs @ _*) => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
case "application.conf" => MergeStrategy.concat
case "unwanted.txt" => MergeStrategy.discard
case x =>
val oldStrategy = (AssemblyKeys.assemblyMergeStrategy in AssemblyKeys.assembly).value
oldStrategy(x)
}
How to Build
> sbt clean update compile assembly
How to Run
> java -cp target/scala-2.10/packageName_2.10-1.0.jar com.sillycat.package.ClassConsumer
References:
http://sillycat.iteye.com/blog/2083193
https://github.com/sbt/sbt-assembly