Do you have the :disable-implicit-clean option set to false in your project.clj file ?
If not, add it to remove the classes from dependencies that otherwise may pollute your target.
As far as "standard" logging in a lib, it might be time to rely on clojure.tools.logging
systematically.
We do not use it here yet but at some point it will become unavoidable.
Luc P.
--
Luc P.
================
The rabid Muppet
This is just a quirk of the Clojure compiler; there's currently no way
to compile a namespace without compiling all its dependencies:
http://dev.clojure.org/jira/browse/CLJ-322
Leiningen includes a workaround for this; you can set
:clean-non-project-classes in project.clj, but it's not on by default
since there are edge cases with protocols where it breaks. The option
Luc mentioned is from an older version where it was turned on by
default.
It's best to avoid AOT compilation unless you need it. You can use the
-m option to lein run to avoid having to declare your -main namespaces
in project.clj:
$ lein run -m clojure.main
-Phil
--