Quando lein constrói classpath com uma versão diferente de um jar do que a especificada em project.clj, isso provavelmente é causado por outro jar tendo-o como uma dependência e sendo carregado antes do seu código.
Exemplo:
(defproject blah "0.1.0-SNAPSHOT"
:description "blah"
:url "http://www.blah.com"
:dependencies [[org.clojure/clojure "1.4.0"]
[noir "1.2.2"]])
Então…
$ lein classpath
(...):~/.m2/repository/org/clojure/clojure/1.3.0/clojure-1.3.0.jar:(...)
O quê? Eu quero clojure 1.4.0, por que lein usa 1.3.0?
Diagnosticando:
$ lein deps :tree
[noir "1.2.2"]
(...)
[org.clojure/clojure "1.3.0"]
Claramente, noir
requer clojure 1.3.0. Para corrigi-lo, você precisa excluir o clojure das dependências noir:
(defproject blah "0.1.0-SNAPSHOT"
:description "blah"
:url "http://www.blah.com"
:dependencies [[org.clojure/clojure "1.4.0"]
[noir "1.2.2" :exclusions [org.clojure/clojure]]])
E agora Lein faz o que você quer.
$ lein classpath
(...):/Users/tomo/.m2/repository/org/clojure/clojure/1.4.0/clojure-1.4.0.jar:(...)