You don't need to maintain your own if you don't want to; you can fetch from remote repositories (and unless you're using something esoteric you only need to use one, all major libraries are in central).
>You rely on others to do things which - though "cheap and easy" - are not going to be done by 99% of people out there.
It takes the whole community committing to it, but 99% of Java people will make maven releases for any build they intend for public consumption.
>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!
Few things in software are worse than magic. I guess I'm advocating a little friction here, just for the sake of safety; it works better if people take make an easy but explicit choice that some builds are for others to use and some builds are not. Again I guess that's a matter of community norms.
>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?
Like with hosting or version control or anything, you will probably want to host your own sooner or later, but you can start off by using someone else's. And FWIW I have an opposite view on the UI, though without concrete examples there's probably no point talking further.
>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.
I don't know what you were doing wrong, but that's not a normal problem. When you build something that depends on a snapshot maven will by default refetch it if it hasn't for a certain time; if you use -U it will always refetch it, if you're using offline mode it will always use your local copy.
>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.
Maven is very flexible and plugin-based, and a lot of things e.g. the repository, the release process, various plugins could work the same. Obviously it would only work if a whole language ecosystem adopted it, it's probably too late for Ruby.
You don't need to maintain your own if you don't want to; you can fetch from remote repositories (and unless you're using something esoteric you only need to use one, all major libraries are in central).
>You rely on others to do things which - though "cheap and easy" - are not going to be done by 99% of people out there.
It takes the whole community committing to it, but 99% of Java people will make maven releases for any build they intend for public consumption.
>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!
Few things in software are worse than magic. I guess I'm advocating a little friction here, just for the sake of safety; it works better if people take make an easy but explicit choice that some builds are for others to use and some builds are not. Again I guess that's a matter of community norms.
>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?
Like with hosting or version control or anything, you will probably want to host your own sooner or later, but you can start off by using someone else's. And FWIW I have an opposite view on the UI, though without concrete examples there's probably no point talking further.
>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.
I don't know what you were doing wrong, but that's not a normal problem. When you build something that depends on a snapshot maven will by default refetch it if it hasn't for a certain time; if you use -U it will always refetch it, if you're using offline mode it will always use your local copy.
>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.
Maven is very flexible and plugin-based, and a lot of things e.g. the repository, the release process, various plugins could work the same. Obviously it would only work if a whole language ecosystem adopted it, it's probably too late for Ruby.