Clojure:lein任务无法找到jdbc,即使应用程序可以找到它

Clojure:lein任务无法找到jdbc,即使应用程序可以找到它,clojure,leiningen,Clojure,Leiningen,我正在尝试创建一个名为migrate的自定义lein任务,因此我可以在命令行上说: lein migrate lein在src/leiningen/migrate.clj下找到我的任务文件(根据leiningen约定)。在任务的ns声明中,我需要项目中的一个文件 (ns leiningen.migrate (require [triface.migration :as mm])) (defn migrate [] (mm/run-migrations)) 它发现src/trifac

我正在尝试创建一个名为migrate的自定义lein任务,因此我可以在命令行上说:

lein migrate
lein在src/leiningen/migrate.clj下找到我的任务文件(根据leiningen约定)。在任务的ns声明中,我需要项目中的一个文件

(ns leiningen.migrate
  (require [triface.migration :as mm]))

(defn migrate []
  (mm/run-migrations))
它发现src/triface/migration.clj很好,但该文件需要一个需要jdbc的文件:

(ns triface.db
  (:require [clojure.java.jdbc :as sql]))
此调用在我的应用程序中工作正常,但在此lein任务中失败,出现以下错误:

Exception in thread "main" java.io.FileNotFoundException: 
Could not locate clojure/java/jdbc__init.class or clojure/java/jdbc.clj on classpath

这是怎么回事?谢谢

类路径略有不同。 要按原样使用,必须在project.clj文件中定义:dev依赖项

比如说,

:dev-dependencies [[org.clojure/java.jdbc "0.0.4"] ]
然后,正确加载jar文件

(ns triface.migration
  (:require [clojure.java.jdbc :as sql]))

 (defn run-migrations[]
   "hello")

你可以在这里看到Lein LB是如何做到这一点的:

编辑:修复了URL