Clojure:在Clojars上部署以及后来要求

时间:2013-06-21 01:32:00

标签: maven clojure leiningen clojars

我有关于部署到Clojars的基本问题。我写了一个库并将其部署到Clojars,但是当我尝试要求它时,我收到了一个java.lang.ClassNotFoundException。

以下是我的要求:

https://github.com/mobiusinversion/interval-trees

这里是Clojars的所在地:

https://clojars.org/interval-trees

我想也许我错过了关于群组或神器ID的东西,我不确定。我希望得到这方面的帮助。谢谢!

我测试它的方式是在一个名为interval-tree-test的新lein项目中。这是我测试的project.clj:

(defproject interval-tree-test "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
        :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [interval-trees "0.2.3"]]
  :main interval-tree-test.core)

现在,当我运行lein deps时,我得到了

$ lein deps
Retrieving interval-trees/interval-trees/0.2.3/interval-trees-0.2.3.pom from clojars
Retrieving interval-trees/interval-trees/0.2.3/interval-trees-0.2.3.jar from clojars

在我的.m2目录中确定

$ ls ~/.m2/repository/interval-trees/interval-trees/0.2.3/  
interval-trees-0.2.3.jar.sha1    interval-trees-0.2.3.pom.sha1
interval-trees-0.2.3.jar         interval-trees-0.2.3.pom

最后在我的core.clj

(ns interval-tree-test.core
    (:gen-class)
    (:require [interval-trees.interval-tree :as it]))

    (defn -main [& args] )

2 个答案:

答案 0 :(得分:2)

您的require表单错误。有两种方法可以解决这个问题:

  • 您可以将:require表单移至ns表单:

    (ns interval-tree-test.core
      (:require [interval-trees.interval-tree :as it])))
    
  • 您可以使用require功能在没有ns表单的情况下执行此操作:

    (require '[interval-trees.interval-tree :as it])) ;; note the quote
    

我不知道为什么/如何使用:gen-class帮助你解决这个问题。

答案 1 :(得分:0)

我撒了:gen-class在我所有的.clj中的间隔树中它起作用了。不要得到它,但很高兴它完成。