You might want to look at another great plugin : “sbt-pack” https://github.com/xerial/sbt-pack.
It collects all the dependencies JARs and creates launch scripts for *nix (including Mac OS) and windows. HTH Pierre On 02 Jun 2014, at 17:29, Andrei <faithlessfri...@gmail.com> wrote: > Thanks! This is even closer to what I am looking for. I'm in a trip now, so > I'm going to give it a try when I come back. > > > On Mon, Jun 2, 2014 at 5:12 AM, Ngoc Dao <ngocdaoth...@gmail.com> wrote: > Alternative solution: > https://github.com/xitrum-framework/xitrum-package > > It collects all dependency .jar files in your Scala program into a > directory. It doesn't merge the .jar files together, the .jar files > are left "as is". > > > On Sat, May 31, 2014 at 3:42 AM, Andrei <faithlessfri...@gmail.com> wrote: > > Thanks, Stephen. I have eventually decided to go with assembly, but put away > > Spark and Hadoop jars, and instead use `spark-submit` to automatically > > provide these dependencies. This way no resource conflicts arise and > > mergeStrategy needs no modification. To memorize this stable setup and also > > share it with the community I've crafted a project [1] with minimal working > > config. It is SBT project with assembly plugin, Spark 1.0 and Cloudera's > > Hadoop client. Hope, it will help somebody to take Spark setup quicker. > > > > Though I'm fine with this setup for final builds, I'm still looking for a > > more interactive dev setup - something that doesn't require full rebuild. > > > > [1]: https://github.com/faithlessfriend/sample-spark-project > > > > Thanks and have a good weekend, > > Andrei > > > > On Thu, May 29, 2014 at 8:27 PM, Stephen Boesch <java...@gmail.com> wrote: > >> > >> > >> The MergeStrategy combined with sbt assembly did work for me. This is not > >> painless: some trial and error and the assembly may take multiple minutes. > >> > >> You will likely want to filter out some additional classes from the > >> generated jar file. Here is an SOF answer to explain that and with IMHO > >> the > >> best answer snippet included here (in this case the OP understandably did > >> not want to not include javax.servlet.Servlet) > >> > >> http://stackoverflow.com/questions/7819066/sbt-exclude-class-from-jar > >> > >> > >> mappings in (Compile,packageBin) ~= { (ms: Seq[(File, String)]) => ms > >> filter { case (file, toPath) => toPath != "javax/servlet/Servlet.class" } } > >> > >> There is a setting to not include the project files in the assembly but I > >> do not recall it at this moment. > >> > >> > >> > >> 2014-05-29 10:13 GMT-07:00 Andrei <faithlessfri...@gmail.com>: > >> > >>> Thanks, Jordi, your gist looks pretty much like what I have in my project > >>> currently (with few exceptions that I'm going to borrow). > >>> > >>> I like the idea of using "sbt package", since it doesn't require third > >>> party plugins and, most important, doesn't create a mess of classes and > >>> resources. But in this case I'll have to handle jar list manually via > >>> Spark > >>> context. Is there a way to automate this process? E.g. when I was a > >>> Clojure > >>> guy, I could run "lein deps" (lein is a build tool similar to sbt) to > >>> download all dependencies and then just enumerate them from my app. Maybe > >>> you have heard of something like that for Spark/SBT? > >>> > >>> Thanks, > >>> Andrei > >>> > >>> > >>> On Thu, May 29, 2014 at 3:48 PM, jaranda <jordi.ara...@bsc.es> wrote: > >>>> > >>>> Hi Andrei, > >>>> > >>>> I think the preferred way to deploy Spark jobs is by using the sbt > >>>> package > >>>> task instead of using the sbt assembly plugin. In any case, as you > >>>> comment, > >>>> the mergeStrategy in combination with some dependency exlusions should > >>>> fix > >>>> your problems. Have a look at this gist > >>>> <https://gist.github.com/JordiAranda/bdbad58d128c14277a05> for further > >>>> details (I just followed some recommendations commented in the sbt > >>>> assembly > >>>> plugin documentation). > >>>> > >>>> Up to now I haven't found a proper way to combine my > >>>> development/deployment > >>>> phases, although I must say my experience in Spark is pretty poor (it > >>>> really > >>>> depends in your deployment requirements as well). In this case, I think > >>>> someone else could give you some further insights. > >>>> > >>>> Best, > >>>> > >>>> > >>>> > >>>> -- > >>>> View this message in context: > >>>> http://apache-spark-user-list.1001560.n3.nabble.com/Is-uberjar-a-recommended-way-of-running-Spark-Scala-applications-tp6518p6520.html > >>>> Sent from the Apache Spark User List mailing list archive at Nabble.com. > >>> > >>> > >> > > >