I had a similar problem some time ago.
The analysis is correct that Clojure will always load user.clj. As a
workarround I just moved the require out of the ns form.
(ns user
(:require [mdg.meat2]))
becomes
(ns user)
(defn start []
(require 'mdg.meat2 :reload-all)
(do-something-useful))
I noticed this issue which I'm currently facing:
https://github.com/technomancy/leiningen/issues/1477
Technomancy commented in the issue: "This appears to be a bug in Clojure
causing an incorrect error message that's masking the actual issue. What's
happening here is that the javac task is invok