12

だから私はこのワークフローの問題を抱えています:

私はclojureプロジェクトの担当者を喜んで入力していますが、自分の中にない別のライブラリが必要であることに気付きましたproject.clj。たとえば、この場合はtools.cliライブラリが必要でした。

エディターで開きproject.clj、エントリを追加します:dependencies

     [org.clojure/tools.cli "0.2.1"]

次に、プロジェクトディレクトリ内lein depsで、シェルを入力して必要なライブラリを取得します

プロジェクトの依存関係がプルされた後、技術的にはすべてのクラスファイルがすでにロードされる準備ができていますが、replに戻って次のように入力します。

> (use 'tools.cli)

私はこれを手に入れます:

=>> FileNotFoundException Could not locate tools/cli__init.class
  or tools/cli.clj on classpath:   clojure.lang.RT.load (RT.java:432)

そのため、replを再起動する必要があり、ライブラリが必要になる前の状態にreplの状態を再構成するために多くの時間を無駄にしました。

ライブラリを動的にロードする方法はありますか?たとえば、実行した後lein deps、replに戻って次のように入力します。

> (load-library "tools.cli") 
> (use 'tools.cli)

前もって感謝します

4

3 に答える 3

8

ザクロはあなたのためです:

https://github.com/cemerick/pomegranate

実行時の新しい依存関係のダウンロードと追加をサポートします。例:

(add-dependencies :coordinates '[[incanter "1.2.3"]]
                  :repositories (merge cemerick.pomegranate.aether/maven-central
                                       {"clojars" "http://clojars.org/repo"}))
于 2012-07-25T01:54:35.870 に答える
1

このようなものはあなたのために働きますか?

https://groups.google.com/d/msg/clojure/AJXqbpGMQw4/0-7-3pXRwGkJ

clojure.core / add-classpathもありますが、非推奨です。

http://clojuredocs.org/clojure_core/clojure.core/add-classpath

于 2012-07-25T01:37:54.130 に答える
0

を使用して、replで1つのライブラリを試すことができますlein-try

~/.lein/profiles.clj

{:user {:plugins [[lein-try "0.4.3"]]}}

command line

$ lein try clj-time "0.5.1"
Fetching dependencies... (takes a while the first time)
lein-try loaded [clj-time "0.5.1"]

nREPL server started on port 57036
REPL-y 0.2.0
Clojure 1.5.1
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)

user=>
于 2017-12-07T09:06:36.220 に答える