4 ms·
The performance problems are definitely the most annoying part of using Gradle. The Gradle daemon helped a little but tended to break other things and Gradle w
by eeperson 12y ago
The performance problems are definitely the most annoying part of using Gradle. The Gradle daemon helped a little but tended to break other things and Gradle was still pretty slow.
If you are looking for something faster and more declarative, you may want to check out SBT[0]. It is way faster than any of the other JVM build tools. Also, in the future[1] it should have much better tooling support than anything else on the JVM.
[0] - http://www.scala-sbt.org/ http://www.scala-sbt.org/
[1] - https://github.com/sbt/sbt/wiki/Client-server-split https://github.com/sbt/sbt/wiki/Client-server-split
- EdwardDiego 12y agoSBT has a terrible habit of breaking backwards compatibility, which has put me off it.
- eeperson 12y agoI've never had to change anything between upgrades (aside from changing deprecated stuff). Are you referring to the jump between from 0.7 to 0.10 a few years ago or have you had more recent issues?
- EdwardDiego 12y agoYeah, I just went and had a look at the project in question and I'm being unfair to SBT, it was a plugin I use to package WARs that changed underneath me. The plugin was quite closely coupled to the version of SBT, but the latest variant of it (once I found out about the migration to a different artefact) seems good.
- lomnakkus 12y agoRight now, SBT + IDEA is a bit of a pain because they share the same target folder and IDEA sometimes overwrites/deletes .class files that your application (started via sbt run) hasn't loaded yet. Usually that leads to a few ClassDefNotFound errors and such. Hopefully that'll go away once we have a single SBT instance. My two wishes for SBT would be: 1) A monadic style for .scala build files. It would make dealing with the immutable bits of project definitions so much more pleasant and we could avoid the weird semi-Scala syntax of .sbt files. And 2) A bottom-up approach similar to Pants. My team frequently end up getting a lot more project interdependencies than we bargain for simply because it's too easy to induce transitive dependencies.
- eeperson 12y agoWould you mind elaborating on what you mean by a monadic style for .scala build files? PS - You may already know this, but you can change IntelliJ's compile output directory [0]. [0] - http://www.jetbrains.com/idea/webhelp/configuring-module-compiler-output.html http://www.jetbrains.com/idea/webhelp/configuring-module-com...
- lomnakkus 12y agoThank you, I haven't actually tried that. I really live the "I just want my IDE to work" philosophy (out of laziness), so I try to avoid configuration if I can. :) About monadic style: I realize that it's a hard sell, but it's basically about leveraging for comprehensions (aka. do-notation) to specify your build. Shake is an example of this, although probably not particularly suited to building Scala code.