2012-01-10 26 views
3

我一直在努力與leiningen一起構建一個獨立的.jar。雖然已經通過githubAlex Ott's Website以及一些相關問題的例子,但我無法弄清楚如何正確設置項目。在項目做lein uberjar後,它抱怨leinigen中的類路徑問題

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程序員,也不是很習慣classpath問題;快速和骯髒的幫助非常感謝。

+0

你有沒有運行雷音DEPS?你能從我的腳本腳本中找到這樣的jar文件嗎?CLOJURE_JAR =「$ HOME/.m2/repository/org/clojure/clojure/1.2.1/clojure-1.2.1.jar」 – octopusgrabbus 2012-01-12 19:27:45

回答

1

嘗試使用[org.clojure/clojure-contrib "1.2.0"]代替[org.clojure/clojure-contrib "1.1.0"]

在1.1.0版本不存在命名空間clojure.contrib.string

+0

感謝提示。我會試試這個。 – 2012-01-20 12:36:06