Patch implementing the idea.
Introduces lucene/ivy-versions.properties, included in lucene/ivy-settings.xml, where all dependency versions are stored as properties of the form: /org/name = rev, e.g. /commons-io/commons-io = 2.1. There are two shared revs: jetty.version and hadoop.version, which are included in and interpolated as revs in lucene/ivy-versions.properties.
I thought about using Maven coordinate-style syntax, with a colon between the dependency's org and its name, but colons have to be escaped in property file syntax, since the colon a metachar equivalent to '=', so it looked clunky. The path-ish slash style works everywhere I tried it, including as cmdline sysprops. And it provides a sort of namespace for these properties.
I also switched to loading lucene/ivy-versions.properties in the -check-forbidden-java-apis target in solr/build.xml, to access the commons-io:commons-io version, used in locating the appropriate definitions file.
This patch also effectively upgrades the httpcomponents dependencies in the lucene/replicator module to the versions used in Solr; the required checksums are swapped in under lucene/licenses/.
ant precommit and ant test both pass after I rm $(find . -name '*.jar').
I'll commit in a day or so if there are no objections.