我一直在努力与leiningen建立一个独立的.jar。虽然已经查看了github和Alex Ott's Website上的示例以及一些相关问题,但我无法弄清楚如何正确设置项目。在项目中执行lein uberjar
后,它会抱怨
Could not locate clojure/contrib/string__init.class or clojure/contrib/string.clj on classpath: (collision.clj:1)
我的项目目录看起来像
.
├── classes
├── lib
│ ├── clojure-1.2.1.jar
│ └── clojure-contrib-1.1.0.jar
├── project.clj
└── src
└── collision
└── collision.clj
我的project.clj
:
(defproject collision "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.2.1"]
[org.clojure/clojure-contrib "1.1.0"]]
:main collision.collision)
collision.clj
:
(ns collision.collision
(:require
clojure.set
clojure.string
[clojure.contrib.string :as st]
[clojure.contrib.str-utils :as su]
[clojure.contrib.combinatorics :as cmbn]))
... defns ...
(defn -main []
(...))
(-main)
代码适用于REPL。如何告诉leiningen在哪里找到clojure-contrib-1.1.0.jar
?我不是Java程序员,也不习惯类路径问题;非常感谢快速和肮脏的帮助。
答案 0 :(得分:1)
尝试使用[org.clojure/clojure-contrib "1.2.0"]
代替[org.clojure/clojure-contrib "1.1.0"]
不存在命名空间clojure.contrib.string