Clojure: задача lein не может найти jdbc, хотя приложение может найти его нормально - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь создать пользовательскую задачу lein под названием migrate, поэтому я могу сказать в командной строке:

lein migrate

lein находит файл моей задачи в src / leiningen / migrate.clj (согласноЛейнингенская конвенция).В объявлении ns для задачи у меня есть требование для файла из моего проекта

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

(defn migrate []
  (mm/run-migrations))

Он находит src / triface /igration.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

Что здесь происходит?Спасибо!

Ответы [ 2 ]

1 голос
/ 21 июля 2011

classpath немного отличается.Чтобы использовать его как есть, вы должны определить: dev-dependencies в вашем файле project.clj.

Например,

:dev-dependencies [[org.clojure/java.jdbc "0.0.4"] ]

Затем файл jar загружен правильно.

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

 (defn run-migrations[]
   "hello")
0 голосов
/ 21 июля 2011

Вы можете увидеть, как Lein-LB делает это здесь: https://bitbucket.org/kumarshantanu/lein-lb/src/tip/README.md

Редактировать: Исправлен URL

...