【问题标题】:Clojure: Deploying on Clojars and later RequireClojure:在 Clojars 和更高版本上部署
【发布时间】:2013-06-18 01:30:53
【问题描述】:

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

这是我的要求:

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

这是 Clojars 上的位置:

https://clojars.org/interval-trees

我想也许我在组或工件 ID 方面遗漏了一些东西,我不确定。我会很感激帮助解决这个问题。谢谢!

我测试这个的方法是在一个名为间隔树测试的新 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] )

【问题讨论】:

    标签: maven clojure leiningen clojars


    【解决方案1】:

    我在区间树中的所有 .clj 中都添加了 :gen-class,它起作用了。不明白,但很高兴它完成了。

    【讨论】:

      【解决方案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 会帮助您解决这个问题。

      【讨论】:

      • 您好,感谢您的提醒。我在注释和代码中修复了这个问题。由于某种原因,当我将 (:gen-class) 标志添加到项目中的所有命名空间时,解决方案就出现了。我需要了解更多关于 thwy 的信息。干杯。
      猜你喜欢
      • 2013-07-06
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 2017-07-23
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多