On Tue, Jan 30, 2018, 6:07 PM Colin Fleming <colin.mailingl...@gmail.com> wrote:
> 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. > Don't wanna start a religious war, but I've worked with Gradle (and about 150 other build tools). If Gradle makes you happy Bazel will make you rapturous. See e.g. https://www.google.com/amp/s/www.pgrs.net/2015/09/01/migrating-from-gradle-to-bazel/amp/ G > > 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. > -- 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.