11

Mavenを使用してライブラリを〜/ .m2 /repository/ディレクトリにインストールしました。そのパスをデフォルトのClojureクラスパスに追加したいと思います。その方法についてのドキュメントが見つかりませんでした。

ヒントはありますか?

乾杯!

clj
Clojure 1.4.0
user=> (require '[clojure.java.jmx :as jmx])
FileNotFoundException Could not locate clojure/java/jmx__init.class or clojure/java/jmx.clj on classpath:   clojure.lang.RT.load (RT.java:432)

デフォルトのクラスパスは次のとおりです。

user=> (println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
(#<URL file:/Users/myuser/cljmx/> #<URL file:/usr/local/Cellar/clojure/1.4.0/clojure-1.4.0.jar> #<URL file:/Users/myuser/cljmx/>)
nil
4

4 に答える 4

12

Leiningenは、プロジェクトに関連付けられたクラスパスの設定を維持することで、このプロセスの負担を大幅に軽減し、さらに重要なことに、繰り返し可能なビルドプロセスにつながります。ここで、数年後にプロジェクトに戻っても、担当者を得ることができます。これらの場合のライニンゲンの使用の一般的な概要:

  • lein新しいプロジェクト名
  • 必要なライブラリを、選択した名前でproject.cljファイルに追加します
  • lein depsを実行して、jarをローカルリポジトリに追加するために使用するコマンドを出力します
  • 瓶を追加します
  • lein depsを再度実行します(leiningen2を使用している場合は、この手順をスキップできます)
  • leinreplを実行します
  • 楽しい

これは、使用しているライブラリが、Mavenリポジトリのパッケージの一部ではないか、パッケージから利用できないことを前提としています。

于 2012-08-15T18:09:10.920 に答える
10

痛みを伴わない、一般的な方法は、MavenとクラスパスおよびJREを直接混乱させず、leiningenを使用することです:https ://github.com/technomancy/leiningen/

それ以外の場合は、cljJavaが好きな方法で、中にあるものを変更し、クラスパスを追加/設定できます。たとえば、Javaクラスパスでの複数のjarの設定を参照してください。

于 2012-08-15T17:13:38.563 に答える
10

ライブラリpomegranatehttps ://github.com/cemerick/pomegranateを使用して、実行時にクラスパスを追加するオプションもあることに注意してください。

これにより、次のことが可能になります。

 (require '[cemerick.pomegranate :as pom])
 (pom/add-classpath "/home/user/~.m2/....")
于 2012-08-17T15:12:08.997 に答える
7

cljこれはClojureREPLを起動するためのスクリプトだと思います。このスクリプトを調べて、次のような行を見つけてください。

java -cp /path/to/clojure.jar clojure.main

ここclojure.mainで、クラスパスに「clojure.jar」を含むクラスを開始します。さらにjarを追加するには、-cpオプション値の最後にそれらを追加するだけです。例:Linuxの場合:

java -cp /path/to/clojure.jar:/path/to/mylib.jar clojure.main

(Windows;の代わりに使用):

ただし、すぐにこの方法に飽きて、プロジェクト管理ツールを探すようになります。したがって、今すぐ使用を開始することは理にかなっています。Leiningenを見てください-Mavenに基づいて依存関係を管理し(したがって、新しいjarを追加するのは非常に簡単です)、REPLを備えています。

于 2012-08-15T17:13:59.157 に答える