Ben Laurie blathering

Java Drives Me Nuts!

Though I will admit that a lot of the nut-drivingness has been taken out of it by Eclipse (even if it is black magyck). So, I’ve been playing with Higgins (btw, teehee!). Or, rather, trying to. It seems Higgins is a pile of different inter-related projects. Which is good, but each one has its own dependencies which it wants to find in a subdirectory called lib. The first issue here is when I discover that something depends on stax-api-1.0.1.jar, what am I supposed to make of that? I can do a bit of googling and discover that there is such a thing out there on the interweb, download it and plug it in. But surely there’s a better way? How do I know I got the right thing? Suck it and see?

And what when the required library is called serialiser.jar? That’s just a teensy bit vague. Now what?

Then there’s the issue that each one of these projects wants its own copies of each library. Which I can do, of course, but it’s tedious! Again, I ask, surely there’s a better way?

Someone please tell me this is a solved problem and I’m a moron for whining about it.

(And I haven’t even started writing Java yet, that’s when the real nuts-drivingness sets in)


  1. Maven and Ivy are supposed to solve this. Their repository of deps seems to suck, though- I still do this manually.

    Comment by alex — 4 Jul 2007 @ 20:53

  2. This isn’t a solved problem. However, Maven is an alarmingly popular solution to the library dependency resolution problem (especially with Apache libraries). It has some problems, but nothing else is nearly as popular.

    Personally, I think a well-packaged library or framework should have a single archive to download, with jars for the few dependencies it needs already in lib, so you don’t need anything other than the JDK to run it. That doesn’t really help when you want to combine libraries that have conflicting dependencies, but at least you can try the library out without any fuss.

    Yes, there are a lot of badly-packaged Java libraries out there. I usually take this as a sign that the people working on the project aren’t very concerned about having actual customers and therefore the library is not worth bothering with.

    Comment by Brian Slesinsky — 4 Jul 2007 @ 21:09

  3. One of my todo list items is to build the SHA1->JAR mapping for all the artifacts in the ivy repo, along with the main sun files. That way, when you get a JAR whose version is unknown, you sha1sum it, then look up the artifact in the list. Maybe I’ll stick the table up on google data, or serve it up under a database+JSP somewhere

    meantimes, maven repository search: is your best friend.

    Comment by Steve Loughran — 13 Jul 2007 @ 12:49

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress