Hacker News new | past | comments | ask | show | jobs | submit login

Or adopt a system with a sane versioning system and immutable artifacts, e.g. Maven Central.

which still means that your ci needs to download this stuff. with vendor it is already checked it. consider builds on docker etc, where build caching is hard. go is a breeze.

build takes like half a second because everything is already there. mvn will first download the world. I'm a scala developer and sbt will probably take like 10 minutes just downloading stuff, if a cache missed (even with a local proxy).

I wonder how it is possible to take 10 minutes, unless it is downloading directly from internet.

We always have internal Plexus mirrors, and the Jenkins servers have their global .m2 local repository.

Even big JEE applications barely take more than 5 minutes to build.

The only build system I really dislike are Android builds with Gradle, trying to beat C++ compilation times.

well sbt uses ivy which is way slower than maven, when it comes to resolving stuff.

First things first, Maven's config files are an elaborate form of torture. Second, there is no such thing as remote artifacts that are immutable.

Check your shit into your git repository. And managing that becomes a problem, you've already done goofed up and have too many dependencies, and it's unlikely there's _anything_ reproducible about your software.

> Second, there is no such thing as remote artifacts that are immutable.

And yet, that's exactly what Maven Central artifacts are.

And why Maven Central is rock solid for reproducible builds while supporting versioning.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact