In that case, you will simply have to tell them where to get the files
and tell them that they have to be uploaded into their Maven repo with
the same GAV that you used in your POM.

No one would have trouble with these instructions.

Uh... there are a lot of people who're comfortable with an IDE but not
with the command line.
For these, command-line instructions would register as "bizarre".
Media mismatch and all that.
Who said anything about a command line?

You didn't mention what you were using, and all other mentions of install-file have consistently been a "mvn xxx" command line, so I was just assuming that that's the standard way.

Telling them to upload to their repos isn't exactly what I'd consider a "repeatable build". Imagine a project pulling in a gazillion of binaries, all at different versions; shouldn't instaling them be part of an automated process?

I never use a command line for Maven or to upload to my Maven Repo.

What else?

My point is that for someone who knows how to use Maven, they are going
to wonder why you are working this rather odd way.

Well, from a non-maven-user's perspective, insisting on manually installing external (non-maven) dependencies is quite bizarre, too.

Dunno who's on the more bizarre point of view here. Don't think anybody here is impartial enough to decide.

They will eventually figure out the right way to do it and probably send
you a nice note about how you should have used a Maven repo.
If they are really nice, they will fix your instructions for the next
person and post it on their blog.

In practice, I'm seeing tons of people trying out the most hilarious
workarounds.
Also, I'm not seeing any workable procedure. install-file doesn't cut
it, it requires manual intervention to keep information on the
download coordinate from which the jar originates - which means that
this manual intervention isn't done and you end up with jars with no
useful version information in the maven repo.
No the repo has a meaningful version number. The one that you gave it.
This could be the SCM revision number if you want.
Since you are writing the POM, your dependency GAV matches the GAV that
you gave it in the repo.

See my lengthy rant on lwjgl in my answer to Stephen.

When you put the artifact in your repo, you give it a GAV and from then
on anyone who wants to use your POM has to use the same GAV when they
upload this un-maven artifact. No big deal.

Except that the artifact loses all metadata that link it to its origin. Which means people lose information about what they're actually dealing with, it's just a binary blob with unknown content, not even a version number survives.

You need to manually supply that information. Manual = there's no guarantee that it's even correct. If the collaborators don't share a common repo, the problem gets worse since everybody needs to correctly supply that information. If anybody has problems, you can't properly diagnose them because you don't really know whether they got the download right, so suddenly you're now burdened with maintaining a maven repo. (Bitbucket doesn't offer maven repos. I'm not aware of any service that allows setting up closed-group maven repos unless you pay $. This is a small project with a budget of zero, so $ is not really an option.)

There are a few projects that do not distribute POM files with their
jars and some that do but do not publish to Maven Central.
It is just a fact of life that you have to load some things manually
into your repo and some things have to be given a "fake" POM by the repo
so you can reference them in a repeatable way.

That's exactly where Maven could do better.
Give Maven a notion of "stable external download site", controllable
from poms, and people will stop looking for workarounds. Well, at
least those who care to ask here :-)
Whichever plugin is responsible for that could even do some quick
checks whether the download site is really stable (WWW status, SCM tag
existence check, whatever), and ring an alarm bell if anything is off.
That would be far better than any kooky workarounds people are trying
right now.

There is no kookie workaround.

???
I was talking about what people do. Lots of workarounds; Stephen just facepalmed about a proposed workaround, with the words of "not this one!" IIRC.

So... yes, there are plenty of them.

> This is the way Maven and Maven repos work with un-Mavenized projects.

Yeah, and I have taken extraordinary pains to explain how that flies in the face of Maven's claims of automating a repeatable and dependable build process, and I have yet to hear an argument that falsifies that.

Can't say I'm impressed with the concepts as presented.

If you do something different, people will think that you don't know how
to use maven properly.

I fail to understand how manually installing artifacts is a good idea if they are available from a stable, unchanging source. Yet the only way you've been offering is exactly that, and you have consistently failed to argue how that's still a good idea (in fact from my current understanding, it's a horrible, bizarre idea).

As long as this is the situation, the workflow itself must be considered dubious, and I couldn't care less about what others think about the use of such a workflow.

Yes, yes, yes, I may be wrong.
Just explain yourself. Explain how manual installation to a maven repo is preferrable to an automated one, I dare you.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to