So, after messing around a bit, I think this is a premature optimization. Marking them as compile (meaning, their transitive dependencies come for the ride) and optional (meaning if someone depends on kiji-mr these dependencies won't come along) still results in conflicts over the version of org.codehaus.jackson.

Anyway, we don't want the transitive dependencies that these things bring along for the ride. Once bridges get implemented here, Whoever is doing that can figure out what needs to be compile scope.