| > Sure GitHub has been having some problems recently, but they are all-in-all massively reliable. Meh. They've been down more often and for longer than my local nexus. Sometimes it's worth depending on a third-party service, if the benefits outweigh the cost - but there certainly is a cost. >I also have to wait for someone to either upload, or set up an automated solution to upload, the version I want. This should be cheap and easy; I think a lot of people misunderstand the point of maven releases - they're not meant to correspond 1:1 to your public "releases", they're for any case where you need a stable, reproducible build. And do you really want to depend on some random development revision of a given library? Maybe there's a different community norm for Ruby, but if you tried that on one of my projects odds are it wouldn't even compile. >Nightmare. We actually do do this - we maintain a nexus instance on EC2. Its a fairly awful experience. Really? My experience is that Nexus is one of the simplest things to run that there is - just run the jar and... yeah, that's pretty much it. What problems have you had? (It's not that I don't believe you, I'm just surprised, and maybe they're things I should be watching out for myself). >the SNAPSHOT stuff which is awful, and a lot of things tied to java. It is quite tied to Java (I use it with pure scala but I guess that's similar). What's wrong with the approach to SNAPSHOTs? |
Agreed, but don't pretend there isn't a cost to maven. You need to maintain your own nexus server. You rely on others to do things which - though "cheap and easy" - are not going to be done by 99% of people out there.
> do you really want to depend on some random development revision of a given library
You can also depend on a particular branch or tag, which people already do. Now adding a tag in git is equivalent to publishing a versioned library! Magic!
> My experience is that Nexus is one of the simplest things to run that there is
I find the software complex and difficult to use. All I want to do is use my own jar with my own project, and I have to wade through an unintuitive, difficult to use, edge-case ridden web app that I have to maintain myself? Honestly, this has been the worse part of my clojure experience (learning emacs was less painful and more rewarding).
> What's wrong with the approach to SNAPSHOTs
Maven - if I understand this correctly and I would not be surprised if there was some arcana which prevents me from doing so - expects each version to immutable. So when SNAPSHOTs change, I end up deleting my .m2 directory to figure it out.
But even if this were somehow good, why would people use maven for Ruby? They're different languages, ecosystems, etc. It doesn't even make any sense.