Another tool that works well for polyglot JVM projects is Gradle. I use it to build Cursive, which has Java, Kotlin and AOT'ed Clojure. I released a mostly-unsupported plugin for it, and Andrew Oberstar and others have taken it over and done a lot of work on it - it now lives at https://github.com/gradle-clojure. It's pretty new but is under active development.
Gradle works very well for Cursive, I'm very happy with it. On 29 January 2018 at 20:07, Nathan Fisher <nfis...@junctionbox.ca> wrote: > Hi Kiril, > > I think you’d need to set your expectations. Faster builds are unlikely to > be one of the benefits. A unified build tool is one. > > I’ve seen a few similar attempts with Buck which was inspired by Bazel. > They either generate lein projects on the fly or call into the Clojure > compiler directly. > > I think Clojure’s build model works against these tools in part because > it’s a dynamic language, in part because it doesn’t implicitly forward > declare functions, in part because (I believe) it does breadth first > traversal if dependencies, and in part it’s non-trivial/inefficient to > create a clean Clojure VM per dependency in the build graph. > > Typical usage of these build tools is to have a build file per directory > with one or more targets in each file. In order to get the speed that the > build tool promises you need the ability to efficiently parse the ABI of > each file and only build its dependents when the ABI has changed. > > I’m not certain you can do that with Clojures compiler but someone else > might be able to chime in with a way that you could. > > Cheers, > Nathan > > On Mon, 29 Jan 2018 at 13:16, Kiril Videlov <kiril...@runbox.no> wrote: > >> Hello, >> I have been looking at the Bazel <https://bazel.build> build tool for a >> multi-language mono-repo and I was wondering if anybody has tried it in the >> context of Clojure projects. I have only found the lein-monolith >> <https://github.com/amperity/lein-monolith/> plugin which appears to >> address a similar use case sans the polyglot requirement. Do you think >> there is any value in attempting to build a rule set >> <https://docs.bazel.build/versions/master/skylark/rules.html> similar to >> the bazel rules for Scala <https://github.com/bazelbuild/rules_scala>? >> >> Regards, >> Kiril Videlov >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- > - sent from my mobile > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.