leinigen中的类路径问题

时间:2012-01-10 17:04:17

标签: clojure classpath leiningen

我一直在努力与leiningen建立一个独立的.jar。虽然已经查看了githubAlex 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程序员,也不习惯类路径问题;非常感谢快速和肮脏的帮助。

1 个答案:

答案 0 :(得分:1)

尝试使用[org.clojure/clojure-contrib "1.2.0"]代替[org.clojure/clojure-contrib "1.1.0"]

在版本1.1.0中

不存在命名空间clojure.contrib.string