2012-01-10 56 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