I’ve just updated MaduraDocs. There are some minor cleanups in functionality but mostly tidy ups in the project structure making it easier to integrate into your ant projects. I’m now making use of ivyroundup which is a dedicated ivy repository. Previously I’ve used Maven repositories, which ivy can see okay, but they can be a bit inconsistent with naming, so it is easy to get duplicate jar files of different versions pulled into the project. ivyroundup is nicely ‘moderated’, and seems clean of such issues.
Before I say anymore about ivyroundup I should say just a little about Apache Ivy. Apache Ivy is a mechanism that manages dependencies in your project. You supply a list of products such as log4j, commons collections etc, that your project needs, plus one or more repositories to find them in. When requested ivy fetches the relevant jar files. But it also knows that those products need other products and so on so it fetches those too. That’s a very brief overview, it does more but hopefully you get the idea. You can also easily build your own complete local ivy repository. This is normal for corporates who like the level of control. We do this at my day job.
The typical repository holds the dependency references as well as the artifacts (jar files). But not necessarily. There’s an option to only store the dependency references and a url to find them, which can be elsewhere. So the ivyroundup repository doesn’t have to consume a vast amount of space because it is essentially a bunch of xml files. That means you can pull a copy down to your local machine and mess about with it to add any missing bits you need. Then you attach the patch file with your changes to the helpful project owner who does some QA and then adds it in.
I’ve got all the dependencies sorted out now and they are in the ivyroundup repository. So that means the MaduraDocs project is somewhat smaller as well as easy to use. You just include it in your ivy dependencies and, during your ant build, you invoke a small ant file that gets pulled down from ivy (so ivy is not restricted to jars). This is described in detail in the docs which are, of course, generated by MaduraDocs.
Since I now have things so tidy I have uploaded the project to the SVN repository in googlecode.
Edit: I’ve moved this to a maven project on github. So it doesn’t use ivy now.