1

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] )
4

2 に答える 2

2

あなたのrequireフォームは間違っています。これを解決するには、次の 2 つの方法があります。

  • :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ただし、なぜ/どのように使用することがそれを修正するのに役立つかはわかりません。

于 2013-06-21T04:13:31.790 に答える
0

間隔ツリーのすべての .clj に :gen-class を振りかけたところ、うまくいきました。わかりませんが、完了してよかったです。

于 2013-06-21T03:07:00.460 に答える