weavejester / lein-ring

Ring plugin for Leiningen
Eclipse Public License 1.0
501 stars 100 forks source link

Lein ring does not put provided dependencies on the compiler classpath #162

Open ekimber opened 9 years ago

ekimber commented 9 years ago

For example, this test project:

(defproject lein-ring-bug "0.1.0-SNAPSHOT"
            :dependencies [[org.clojure/clojure "1.6.0"]]
            :profiles {:provided
                       {:dependencies [[munge-tout "0.1.2"]]}}
            :plugins [[lein-ring "0.9.4"]]
            :ring {:handler lein-ring-bug.core/foo})

fails to compile

(ns lein-ring-bug.core
  (:require [munge-tout.core :refer [to-java]]))

(def x (to-java [java.util.List [String]] ["A" "B" "C"]))

Obviously it compiles fine if I put the dependency in the main dependencies list, but unfortunately we have a library jar that gets put in the servlet container libs so it must not appear in the war.

The workaround for now is to use :war-exclusions.