У меня есть hello.clj следующим образом.
(ns hello)
(defn hi [] (println "HI"))
Обычно я могу использовать эту функцию из main.clj следующим образом.Файл hello.clj находится в том же каталоге, в котором находится файл main.clj.И класс включает в себя.(текущий путь).
(use 'hello)
(hi)
Как я могу использовать этот hello.clj для 'lein uberjar'?
Я использовал 'lein new myproject;lein deps ', чтобы получить следующую структуру.
.
|-- README
|-- classes
| `-- myproject
|-- lib
| |-- clojure-1.2.0-beta1.jar
| |-- clojure-contrib-1.2.0-beta1.jar
| `-- lucene-core-3.0.2.jar
|-- project.clj
|-- src
| `-- myproject
| `-- core.clj
`-- test
`-- myproject
`-- test
`-- core.clj
project.clj выглядит следующим образом.
(defproject myproject "1.0.0-SNAPSHOT"
:description "FIXME: write"
:dependencies [[org.clojure/clojure "1.2.0-beta1"]
[org.clojure/clojure-contrib "1.2.0-beta1"]
[org.apache.lucene/lucene-core "3.0.2"]]
:main myproject.core)
И core.clj выглядит следующим образом.* Теперь, куда мне положить hello.clj?Я попытался скопировать его в каталог myproject / src и запустить uberjar, чтобы получить jar.Но запуск банки вызывает это сообщение об ошибке.
prosseek:myproject smcho$ java -jar myproject-1.0.0-SNAPSHOT-standalone.jar a d d
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.io.FileNotFoundException: Could not locate hello__init.class or hello.clj on classpath: (core.clj:0)
...
- Что может быть не так?В сообщениях об ошибках говорится, что hello.clj отсутствует в пути к классам.Но как настроить classpath с помощью 'lein uberjar'?
Я загрузил проект здесь .