Wednesday, November 16, 2011

Seriously, this is why I hate Java.

I want to download W3C's Unicorn, because it validates your HTML, CSS, etc. and makes sure you're not doing anything stupid. The pages I need to validate are internal, highly confidential, etc. so I can't send them out into the web for testing.
I need to run Unicorn locally. So, I check out the installation docs:
Download the source code
The code is only available for download from the Mercurial repository. To download it, use the command
hg clone https://dvcs.w3.org/hg/unicorn
Compile Unicorn
To compile Unicorn easily, Apache Ant and Ivy are required. From Unicorn's directory, run:
ant retrieve generate_observer generate_tasklist default_conf war
Here's what I get from ant:
cherborth@cherborth-lt [578]$ ant retrieve Buildfile: /Users/cherborth/src/unicorn/build.xml  retrieve:  BUILD FAILED /Users/cherborth/src/unicorn/build.xml:18: Problem: failed to create task or type antlib:org.apache.ivy.ant:retrieve  Cause: The name is undefined.  Action: Check the spelling.  Action: Check that any custom tasks/types have been declared.  Action: Check that any / declarations have taken place.  No types or tasks have been defined in this namespace yet   This appears to be an antlib declaration.  Action: Check that the implementing library exists in one of:  -/opt/local/share/java/apache-ant/lib  -/Users/cherborth/.ant/lib  -a directory added on the command line with the -lib argument    Total time: 0 seconds
On the Ivy website, the sample, simple demo build.xml file doesn't work either.
Fucking Java dependencies, build environments, runtime environments, you drive me NUTS. The docs for Ivy and (in particular) Unicorn are absolutely no help here.