Friday, May 29, 2009

JPackage Nonsense

I've never understood the purpose of the JPackage project. As a Java developer one would think I would be in their target audience, but it really doesn't solve any problems for me, and causes many inconveniences. The goal of the project is to package java projects up into nice little upgradable rpms, but I think the java and rpm worlds are really just incompatible. I use Fedora (currently version 10) for my main development environment and I've tried using the prepackaged version of things like eclipse, but it never seems to work as well as the downloadable version.

Just today I was having problems with an Ant build using ant version 1.6.5 (I currently have 3 different versions of Ant installed for testing). I'm getting errors with 1.6.5 that I haven't seen before about missing task definitions. So I run "ant -version" to make sure I'm pointing to the right installation and it returns version 1.7.1. That's weird! So I double check my path "which ant" and check "$ANT_HOME", both are pointing to ant 1.6.5. I end up tracking down that the ant startup script is looking for a file called "/etc/ant.conf" to use as a global configuration file. I don't remember editing this file, but I do remember past experiences with jpackage rpms that do weird stuff to my java applications. Sure enough this configuration came from an rpm and is now breaking my default ant installation.

So the only way to fix this is to either remove the file from "/etc/ant.conf" but the next yum update will probably just put it back and break things again. Or I can hand modify my ant 1.6.5 startup script to not check for this file (very ugly).

I decided to remove the ant rpm "yum remove ant". This fixed my ant installation, but I'll have to watch out for this in the future in case the ant rpm accidentally gets installed again.