6 ms·
Maven is an archaic, verbose nightmare compared to SBT. SBT can be annoyingly esoteric at times, but even for the simplest thing like "add these JARs and compil
by heartsucker 10y ago
Maven is an archaic, verbose nightmare compared to SBT. SBT can be annoyingly esoteric at times, but even for the simplest thing like "add these JARs and compile," SBT wins over Maven, no question.
- deleted 10y ago[deleted]
- lmm 10y agoNot true. Maven may be verbose, but <groupId>com.foocorp</groupId> <artifactId>foo</artifactId> <version>1.2</version> is far less archaic and more understandable than "com.foocorp" % "foo" % "1.2"
- pfn 10y agoactually, the latter is far more readable without markup making my eyes bleed. I generally prefer gradle's method of 'com.foocorp:foo:1.2' but that isn't acceptable statically. scala string interpolators could make it a thing, though.
- harveywi 10y agoUnfortunately, we have things like this in the mix... libraryDependencies += "com.lihaoyi" %% "scalatags" % "0.4.3" libraryDependencies += "com.lihaoyi" %%% "scalatags" % "0.4.3"
- virtualwhys 10y agoTo be fair you'd only be using one or the other, `%%` for jvm-only, and `%%%` for cross platform jvm/js builds. Far and away the biggest blocker to learning sbt is the shaky IDE support for the build project. Apparently that's coming up next in 1.0; will be nice to click through to source from sbt build files and instantly grok what X symbol means. Have wasted a lot of time over the years slogging through documentation...
- lmm 10y agoA build definition format that allows arbitrary code anywhere is always going to have less-good IDE support than one based on declarative documents.
- premium-concern 10y agoI'd just use ModuleID(organization = "com.foocorp", name = "foo", revision = "1.2")