clojure classpath(?) troubles loading code and dependencies with leiningen
我是Clojure和JVM的初学者,而构建工具令我有些困惑,因此请原谅我要执行的愚蠢行为。我实际上不知道什么是"类路径"……我只想要一个带有很多库的Lisp!
但是我试图在Clojure中编写一些简单的文本挖掘代码,但似乎无法使事情正常进行。
有两个问题,并且我认为它们是相关的,都可能与javaland中的classpath问题有关,而介绍性的Clojure书似乎都没有对此进行解释。
我从
1 2 3 4 | :dependencies [[org.clojure/clojure"1.6.0"] [clj-fuzzy"0.1.8"] [snowball-stemmer"0.1.0"] [net.mikera/core.matrix"0.50.0"]]) |
和来自我的core.clj的相关ns调用如下:
1 2 3 4 | (ns blabber.core (:require [clojure.string :refer [lower-case split]] [clojure.walk :refer [keywordize-keys]])) |
我的目录结构是leiningen用于新库的默认设置。
第一个问题:
我从先前的SO中收集到,如果一切设置正确,则在调用
第二个问题:
好的,所以现在我正在尝试实际使用core.matrix。我的core.clj的第一行更改为:
1 2 3 4 5 | (ns blabber.core (:require [clojure.string :refer [lower-case split]] [clojure.walk :refer [keywordize-keys]] [clojure.core.matrix :refer [dataset]])) |
当我第一次使用此project.clj启动repl,但没有对core.matrix使用
但是,在将
CompilerException java.io.FileNotFoundException: Could not locate clojure/core/matrix__init.class or clojure/core/matrix.clj on classpath: , compiling:(/Users/pauliglot/github/blabber/src/blabber/core.clj:1:1)
我在Java 1.8.0_45上使用Leiningen 2.5.1。我只是遵循core.matrix入门指南。
所以发生了什么事? JVM为什么找不到我的东西?救我?谢谢!
如果有帮助,这是
/Users/pauliglot/github/blabber/test:/Users/pauliglot/github/blabber/src:/Users/pauliglot/github/blabber/dev-resources:/Users/pauliglot/github/blabber/resources:/Users/pauliglot/github/blabber/target/classes:/Users/pauliglot/.m2/repository/clj-fuzzy/clj-fuzzy/0.1.8/clj-fuzzy-0.1.8.jar:/Users/pauliglot/.m2/repository/snowball-stemmer/snowball-stemmer/0.1.0/snowball-stemmer-0.1.0.jar:/Users/pauliglot/.m2/repository/org/clojure/tools.macro/0.1.5/tools.macro-0.1.5.jar:/Users/pauliglot/.m2/repository/clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.jar:/Users/pauliglot/.m2/repository/org/clojure/google-closure-library-third-party/0.0-20140226-71326067/google-closure-library-third-party-0.0-20140226-71326067.jar:/Users/pauliglot/.m2/repository/com/google/protobuf/protobuf-java/2.4.1/protobuf-java-2.4.1.jar:/Users/pauliglot/.m2/repository/org/clojure/google-closure-library/0.0-20140226-71326067/google-closure-library-0.0-20140226-71326067.jar:/Users/pauliglot/.m2/repository/org/mozilla/rhino/1.7R4/rhino-1.7R4.jar:/Users/pauliglot/.m2/repository/org/json/json/20090211/json-20090211.jar:/Users/pauliglot/.m2/repository/net/mikera/core.matrix/0.50.0/core.matrix-0.50.0.jar:/Users/pauliglot/.m2/repository/com/google/javascript/closure-compiler/v20131014/closure-compiler-v20131014.jar:/Users/pauliglot/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar:/Users/pauliglot/.m2/repository/org/clojure/clojurescript/0.0-2202/clojurescript-0.0-2202.jar:/Users/pauliglot/.m2/repository/args4j/args4j/2.0.16/args4j-2.0.16.jar:/Users/pauliglot/.m2/repository/org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar:/Users/pauliglot/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar:/Users/pauliglot/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jar:/Users/pauliglot/.m2/repository/org/clojure/tools.reader/0.8.3/tools.reader-0.8.3.jar:/Users/pauliglot/.m2/repository/org/clojure/data.json/0.2.3/data.json-0.2.3.jar
编辑
这是目录树:
|笨拙的
|-文档
|-资源
| -src
| ---
|-目标
| ---班
| ----- META-INF
| -------行家
| ---------麻烦
| -----------
| ---陈旧
|-测试
我所有的代码都在blabber / src / blabber / core.clj中
类路径是Java概念。 Leiningen应该正确设置类路径。 我怀疑是目录,文件名或名称空间声明之间不匹配。 文件路径应为
1 2 3 | (defproject blabber"0.1.0-SNAPSHOT" :dependencies [[org.clojure/clojure"1.8.0"] [net.mikera/core.matrix"0.50.0"]]). |