I am not in the Clojure / core team, so I don’t have inside information, but here’s how I could approach this situation.
Take the latest version of Clojure (1.5 at the time of this writing) and test it against Java 1.5 for what you need to do and any Clojure libraries you need to use and stick to this. If Clojure 1.5 is compatible with Java 1.5, it will always be that way, since this version is unchanged.
I would not assume that all versions of Clojure after 1.5 will be compatible with Java 1.5, and you definitely cannot assume that there will be Clojure libraries. For example, I just released the Clojure library, which requires Java 1.7 (since it uses the java.util.concurrent class introduced in Java 1.7).
Since Leiningen gives you permission to use maven-like, if you test all your libraries and your chosen version of Clojure in Java 1.5 and they work, then you can stick to this set of version-dependent dependencies for as long as you want to maintain the application. Your only risk at that time is that some bug fixes in the non-core library may not be compatible with Java 1.5. This risk is proportional to the number of non-core Clojure libraries that you need to use.
source share